<html>
<head><meta charset="utf-8"><title>Polonius Hackathon 2021-07-30 · t-compiler/wg-polonius · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/index.html">t-compiler/wg-polonius</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html">Polonius Hackathon 2021-07-30</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="245968502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/245968502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#245968502">(Jul 14 2021 at 14:35)</a>:</h4>
<p>Hey, so it's official! We're having a 4h Polonius Hackathon, starting at <time datetime="2021-07-30T14:00:00Z">2021-07-30T10:00:00-04:00</time>, subject to the caveat that this is the last day before I take a vacation and hence if something urgent comes up .. well .. that may interfere. <span class="user-mention" data-user-id="116113">@lqd</span> and <span class="user-mention" data-user-id="204115">@Amanda Stjerna</span> will participate, but if there are other folks who might be interested, comment on this topic and we'll talk about whether we can find a suitable task.</p>



<a name="246674177"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246674177" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lengyijun <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246674177">(Jul 21 2021 at 02:46)</a>:</h4>
<p>I'd like to, though I still have some question about polonius.</p>



<a name="246776651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246776651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246776651">(Jul 21 2021 at 20:50)</a>:</h4>
<p>I'll be around then. Hopefully it goes better than my last attempt <span aria-label="laughing" class="emoji emoji-1f606" role="img" title="laughing">:laughing:</span>.</p>



<a name="246830005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246830005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246830005">(Jul 22 2021 at 10:24)</a>:</h4>
<p>here's a sample of what's been on my mind (some for the last 3 years) that I thought could be interesting tasks and discussion points for the next sprint:</p>
<div class="codehilite"><pre><span></span><code>- catch up

- update on john harrison discussions: even if it&#39;s not yet at the polonius topic and only discussed chalk,
  we depend on chalk so it&#39;s of interest

- plan for higher ranked subtyping and chalk interaction: this blocks us on chalk, can we do something about it ? can we do
  something similar in spirit to what was done to the trait solver to support GAT without waiting on chalk: local changes that
  sidestep the issue. If this is more about the datalog implementation than the model itself, we can talk about moving off of
  datalog.

 - (edit: done) *** make a rustc branch to update fact generation to current polonius master, so that people can work

 - reviewing and landing the subset errors PR
 - reviewing the already landed docs PR
 - talking about the work dylan has done on docs/book
 - talking about the WIP PR removing the materialization of placeholders&#39; liveness at all points, and possible datafrog
   improvements to make it less painful

 - ** removing the Locations::All hack: an alternative to remy&#39;s &quot;outlives_everywhere&quot; relation to fix the fact generation
   OOMs, and fixing a big efficiency problem since that&#39;s &gt;95% of the 860K subsets in clap (33k are regular ones; unknown
   if these stats are representative or not) especially in the datalog model like all &quot;things are true at each point&quot; are
   (niko has already started on this)

 - model: reachability/odisseus. loans are not fundamental IMO, loans and issuing/introducing origins are bijective,
          origins are not really sets of loans (as we saw with the equality variant) (already in progress)
 - model: SSA -&gt; arielb&#39;s, dylan&#39;s explorations
 - model explorations: equality (tease out the interesting things buried among things that didn&#39;t work out in the
   equality variant, esp to fix the current &quot;polonius imprecision&quot;)

 - cfg compression: removing the need for 2 points per MIR statement (I guess these exist because of datalog constraints on the needed ordering) and check
   if it&#39;s actually needed in to have both in all analyses and if we can avoid that easily (move/init, liveness)
 - cfg compression (intra-block): limiting intra-block edges to where they matter (old PR experiment) and removing the others
 - cfg compression (inter-block): computing subsets/loans on cfg blocks/SCCs (thoughts and experiments have been
   done by remy and dylan)
 - subset graph compression: computing subsets/loans over subset SCCs
 - making loc ins a bunch of reachability queries over the cfg and subset condensation graphs (already in progress)

 - * move/init analysis:
   - * debugging move/init analysis (possibly beginner friendly)
   - * completing move/init analysis, partial moves and the likes
   - make move errors early return in `compute` (beginner friendly)
   - understanding the current limitations of move/init analysis, making rustc tests pass with it, validating it
   - maybe bypass move/init + liveness ? going directly to loan analysis (possibly resurrecting some of the initial fact
     generation code) (possibly beginner friendly)
   - add move/init facts to test parser (beginner friendly ?)

 - test parser: move away from lalrpop (beginner friendly)
 - improve tests and validation: more tests, more features in the test framework, refactor tests (/tests, modules per
   feature/analysis), make it possible to add tests and run them without compiling using text files with the test facts format
   (some of this is beginner friendly)

 - benchmark and stats from amanda
 - make latest polonius master thesis pdf available again ? (the zulip link s3 storage doesn&#39;t work anymore)

 - enriching the data from rustc to polonius: similar effort to the shared type library, we&#39;re missing a lot of info (SCCs, CFG
   blocks, dominator info, etc) that is already computed

 - working on sharing info between LocIns and Naive (for testing purposes), LocIns and Opt in the Hybrid variant
   (already in-progress; also niko&#39;s comment in GH issues)

 - beginner friendly: fix typos in rules, check that they match the hackmd, number the rules so that they&#39;re easier to refer to
 - beginner friendly: update the &quot;state of ui tests&quot; to the most recent version of polonius and ui test suite (and also for the PR about subset errors)

----------
update 1:

- polonius debugging / visualization: either in polonius, or on rustc à la -Zdump-mir=polonius including some facts in the mir dump
- more stats and logging/querying of provenance information in datafrog (*some* hacky work has been done about fact logging)
- talk about Vytautas&#39; https://github.com/rust-lang/rust/pull/86977 and in general Polonius users like prusti: what kind of stability do we want to maintain for users who rely on polonius implementation details like the facts structure and output. Also in general, should people be using polonius like this, or in other formal methods work (as what somewhat advertised in the recent verification workshop), or the visualization work in another thread: with its known bugs and imprecision, and incompleteness, could we quickly discuss these kinds of things to ensure they&#39;re not being built on faulty foundations ?
- make polonius take ownership of the facts to stop cloning them (and other assorted fact changes, like changing ordering when the rules expect a certain key first) (beginner friendly)

----------
update 2:
- model discussion about features we&#39;ve at least talked about: interaction with variance (there&#39;s probably nothing
  to be done on our side here), or with member constraints (which are more directly related)
- the rustc UI tests seem to show differences with NLL output for some &#39;static related errors, closures, or some implementations dealing with higher-ranked things: review the existing blessed test expectations in these areas, and try to understand/reduce them to see if the differences are in the rules, the output data, the input data, or in diagnostics (somewhat beginner friendly).


----------
update 3:
- this one is for dylan: van Emde Boas layout for static/input relations in datafrog :joy:
- some PRs have been opened recently in datafrog
- try using soufflé (likely beginner friendly) dylan and rémy have souflé .dl files for the analyses IIRC (or at least a way to have them but could require dumping some of the liveness data from that part of the process)
</code></pre></div>



<a name="246830068"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246830068" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246830068">(Jul 22 2021 at 10:25)</a>:</h4>
<p>the ones with  a star are higher priority (and I plan on doing the 3-star task before next week, so that no one is blocked on it), there are also some ideas marked "beginner friendly"</p>



<a name="246830223"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246830223" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246830223">(Jul 22 2021 at 10:26)</a>:</h4>
<p>I likely have also missed some things</p>



<a name="246830235"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246830235" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246830235">(Jul 22 2021 at 10:27)</a>:</h4>
<p>let everyone know if you also have ideas and we can add them to an agenda and decide either before or at the beginning of the sprint :)</p>



<a name="246830453"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246830453" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246830453">(Jul 22 2021 at 10:29)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> <span class="user-mention" data-user-id="204115">@Amanda Stjerna</span> <span class="user-mention" data-user-id="389101">@lengyijun</span> <span class="user-mention" data-user-id="118594">@ecstatic-morse</span> pinging just so you know about these ideas above in advance for the polonius sprint, please take a look</p>



<a name="246835972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246835972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lengyijun <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246835972">(Jul 22 2021 at 11:47)</a>:</h4>
<p>I have a suggestion on visualization of polonius.</p>
<p>The graphviz file generated by <code>--graphviz-file</code> doesn't contain mir statements.<br>
It's inconvenient for debugging.<br>
I suggest to put mir statements inside the dot file.</p>
<h1>Possible approach</h1>
<p>Add a <code>dump-polonius</code> parameter to rustc.<br>
Rustc generate the graphviz file based on intermediate mir and polonius output.</p>



<a name="246841618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246841618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246841618">(Jul 22 2021 at 12:49)</a>:</h4>
<p>the problem is there are no mir statements in polonius to include in this graphviz file</p>



<a name="246841636"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246841636" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246841636">(Jul 22 2021 at 12:49)</a>:</h4>
<p>but this has been suggested before yes, for the same reasons</p>



<a name="246841665"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246841665" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246841665">(Jul 22 2021 at 12:49)</a>:</h4>
<p>what we were thinking at the time was more of a similar mechanism to the NLL dump-mir but including polonius facts</p>



<a name="246844883"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246844883" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246844883">(Jul 22 2021 at 13:17)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/246830005">said</a>:</p>
<blockquote>
<p>here's a sample of what's been on my mind (some for the last 3 years) that I thought could be interesting tasks and discussion points for the next sprint:</p>
<p><div class="codehilite"><pre><span></span><code> - test parser: move away from lalrpop (beginner friendly)
</code></pre></div><br>
</p>
</blockquote>
<p>Can you expand a bit more on this, in particular whether there has already been discussion on what to move _to_? Parsing could be a small thing I could help with on my own, and it's something that sounds like I don't need to have all of rustc set up (I'm moving this week-end, so there's some other things I'll need to set up again first). </p>
<p>I'm also interested to help in other areas on the Polonius side. Though there, while I've read many of the post, notes and talks on Polonius, I'd probably need more guidance regarding the actual code.</p>



<a name="246857288"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246857288" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246857288">(Jul 22 2021 at 14:48)</a>:</h4>
<p>it's just an idea I've had, and we can discuss it. The main requirement for me would be: moving to something that compiles faster at the very least, and that compiles <em>fast</em> if at all possible. Could be <code>nom</code> or something else.</p>



<a name="246857441"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246857441" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246857441">(Jul 22 2021 at 14:49)</a>:</h4>
<p>note that hacking on polonius doesn't usually require all of rustc set up (though it sometimes is indispensable of course) that's one of the points of the whole librarification effort :)</p>



<a name="246887066"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246887066" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246887066">(Jul 22 2021 at 18:27)</a>:</h4>
<p>Yes I know, AFAIK it is mainly fact generation that is inside rustc? It's not a problem in the long run, I've just heard that the setup takes a while and I'll have to take my PC down tomorrow to move it over ^^</p>



<a name="246887539"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246887539" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246887539">(Jul 22 2021 at 18:30)</a>:</h4>
<p>I'd like to look into this next week. Does the hackathon involve a call or similar that I should be present for (if so, where)? Or is the plan to just all work at the same time</p>



<a name="246889924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246889924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246889924">(Jul 22 2021 at 18:49)</a>:</h4>
<p>probably both</p>



<a name="246890190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246890190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246890190">(Jul 22 2021 at 18:52)</a>:</h4>
<p>e.g. at least have a call at the beginning: it'll be higher bandwidth to discuss what to do, what not to do, whether it's listed in the ideas above or not -- and also how to do so. </p>
<p>Before working how people prefer, either on their own, using zulip, etc. we could have a call running for longer to allow more discussion, but not everyone can be in an environment for long calls.</p>



<a name="246890343"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246890343" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246890343">(Jul 22 2021 at 18:54)</a>:</h4>
<p>we'll see how it goes :) don't feel obligated to attend a call or anything</p>



<a name="246892118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246892118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246892118">(Jul 22 2021 at 19:10)</a>:</h4>
<p>Alright, thanks! If there is one I'd like to attend at least to introduce myself so you know who I am, since I'm new. Looking forward to it!</p>



<a name="246900549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/246900549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#246900549">(Jul 22 2021 at 20:25)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/246830068">said</a>:</p>
<blockquote>
<p>(and I plan on doing the 3-star task before next week, so that no one is blocked on it)</p>
</blockquote>
<p>here it is, a branch updating rustc to the current polonius master with the new relation names <a href="https://github.com/lqd/rust/tree/polonius-master">https://github.com/lqd/rust/tree/polonius-master</a></p>



<a name="247023352"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247023352" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vytautas Astrauskas [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247023352">(Jul 23 2021 at 19:47)</a>:</h4>
<p><span class="user-mention silent" data-user-id="389101">lengyijun</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/246835972">said</a>:</p>
<blockquote>
<p>I have a suggestion on visualization of polonius.</p>
<p>The graphviz file generated by <code>--graphviz-file</code> doesn't contain mir statements.<br>
It's inconvenient for debugging.<br>
I suggest to put mir statements inside the dot file.</p>
<h1>Possible approach</h1>
<p>Add a <code>dump-polonius</code> parameter to rustc.<br>
Rustc generate the graphviz file based on intermediate mir and polonius output.</p>
</blockquote>
<p>Prusti has code that does this, so if you want I can try moving that code to the Rust compiler. However, there is one problem: if we try to display all facts all the same time, the visualization becomes unreadable. Therefore, we need an option that controls what information should be included in the graphviz file.</p>
<p>Let me know what are your thoughts on this.</p>



<a name="247609442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247609442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247609442">(Jul 29 2021 at 16:47)</a>:</h4>
<p>Excited for tomorrow!</p>
<p>As you could probably guess from <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Quantifier.20elimination.20for.20HRTBs">https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Quantifier.20elimination.20for.20HRTBs</a>, I'm most interested in reaching feature-parity with the in-tree borrow checker. IIUC, the biggest hurdle is HRTBs, but maybe that's just solved by chalk (though I'd like to understand exactly how), and we'd be better off thinking about other things. For example:</p>
<blockquote>
<ul>
<li>the rustc UI tests seem to show differences with NLL output for some 'static related errors, closures, or some implementations dealing with higher-ranked things: review the existing blessed test expectations in these areas, and try to understand/reduce them to see if the differences are in the rules, the output data, the input data, or in diagnostics (somewhat beginner friendly).</li>
</ul>
</blockquote>
<p>Besides that, here's some ideas from <span class="user-mention silent" data-user-id="116113">lqd</span>'s list (thanks btw!) that I have thoughts about:</p>
<ul>
<li>
<p>Handle placeholder liveness more efficiently: </p>
<ul>
<li><span class="user-mention silent" data-user-id="116113">lqd</span> has basically solved this, it just needs sign-off from Niko.</li>
<li>I  do think that having a datalog frontend that allows for succinct disjunctive rules would greatly benefit this type of stuff going forward, but a bespoke datalog compiler is a pretty big undertaking. My impression when I first got into Polonius was that it would be quite nice to have an interface to Souffle for faster prototyping. I'm interested in Niko's thoughts on this, because they switched away from Souffle relatively early in the development process. Perhaps it's not as nice as I'm making it out to be?</li>
</ul>
</li>
<li>
<p>Removing <code>Location::All</code>.</p>
<ul>
<li>I haven't looked into this more than superficially. Once again, it seems like we already know the correct approach (see <a href="https://github.com/rust-lang/rust/issues/50938">#50938</a>), but we need to think through its consequences and make sure they're acceptable.</li>
</ul>
</li>
<li>
<p>SSA / region equality</p>
<ul>
<li>I was exploring an alternative execution model for Polonius where the subset relationships between regions (now origins) were fixed, and instead we created a brand new region for a given variable when its subset relationship changed in the CFG. That new region would be tied to the previous region for the variable based on whether it was live.  (There's a few more details, but I'm still loading all this back into cache)</li>
<li>This was inpsired by SSA, but the transformation occurs on regions rather than variables.</li>
<li>This handles equality constraints between regions quite nicely, since they no longer change across the CFG.</li>
<li>However, I couldn't find a way to handle killed loans elegantly, and besides this is just an optimization, AFAICT the optimized variant is fast enough already. I don't think this is high priority.</li>
</ul>
</li>
<li>
<p>Move/init analysis</p>
<ul>
<li>This isn't a top priority for me RN, since it's trying to replicate the existing analyses in <code>rustc</code> rather than breaking new ground. However, I think this will change once librarification is further along, because it will be important for analysis/verification tools built on top of Polonius.</li>
<li>As I understand it, datalog version is quite slow at the moment because the set of init/uninit facts is dense. I've looked at a few ways to mitigate this (all of them mentioned by <span class="user-mention silent" data-user-id="116113">lqd</span> already). We could ignore uninteresting points in the CFG (this may already be implemented?), incorporate basic blocks into the datalog rules to avoid explicitly computing intrablock init/uninit facts, or extend Datalog with an alternate way of storing facts (sets of tuples are not ideal for dense relations, Souffle has a bespoke data-structure for this).</li>
<li>Hoping to talk with <span class="user-mention" data-user-id="204115">@Amanda Stjerna</span> about some of this, since I suspect they have more insight than I do.</li>
</ul>
</li>
</ul>
<p>Mostly, I'm interested in Polonius as a way to implement powerful, lifetime-aware alias/pointer analyses for use in optimization and formal verification. I assume that making Polonius a viable candidate for the actual upstream borrow-checker is an important part of this, but maybe we could be doing more to help the Prusti folks (and others working on formal verification) in the interim?</p>



<a name="247610493"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247610493" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247610493">(Jul 29 2021 at 16:56)</a>:</h4>
<p>have you noticed the vEB layout item dedicated to you ? <span aria-label="joy" class="emoji emoji-1f602" role="img" title="joy">:joy:</span></p>



<a name="247611035"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247611035" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247611035">(Jul 29 2021 at 17:00)</a>:</h4>
<blockquote>
<p>the optimized variant is fast enough already</p>
</blockquote>
<p>not quite. maybe with the ongoing work of taking advantage of the location-insensitive pre-pass as a quick filter (loans/subsets/etc) for the location-sensitive analysis.</p>



<a name="247611067"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247611067" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247611067">(Jul 29 2021 at 17:00)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> I did, and chose to ignore it. I've moved on to Y-tries <span aria-label="laughing" class="emoji emoji-1f606" role="img" title="laughing">:laughing:</span></p>



<a name="247611312"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247611312" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247611312">(Jul 29 2021 at 17:02)</a>:</h4>
<p>to give a ballpark of the opt analysis (and I've done these measurements last year so I may be misremembering) without counting the move/init analysis (which is incomplete, likely has bugs, and is very slow), analyzing the single function from clap takes seconds</p>



<a name="247611346"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247611346" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247611346">(Jul 29 2021 at 17:03)</a>:</h4>
<p>(IIRC it does pass the location-insensitive test, so it's not like we'd have to run it here)</p>



<a name="247611531"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247611531" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247611531">(Jul 29 2021 at 17:04)</a>:</h4>
<p>and NLL borrow checks the whole <code>clap</code> crate, which has in the hundreds of functions, including a handful that are as big as our benchmark (and some which are actually bigger) in 500ms or something</p>



<a name="247611642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247611642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247611642">(Jul 29 2021 at 17:05)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247611035">said</a>:</p>
<blockquote>
<blockquote>
<p>the optimized variant is fast enough already</p>
</blockquote>
<p>not quite. maybe with the ongoing work of taking advantage of the location-insensitive pre-pass as a quick filter (loans/subsets/etc) for the location-sensitive analysis.</p>
</blockquote>
<p>Ah, interesting. How fast is "fast enough" to you? Are we like, within an order of magnitude of NLL? As I understand it, there's some overhead due to fact generation because of how decoupled Polonius is so it's hard to do a totally fair measurement.</p>



<a name="247611755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247611755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247611755">(Jul 29 2021 at 17:06)</a>:</h4>
<p>Got it (man I'm slow)</p>



<a name="247611787"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247611787" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247611787">(Jul 29 2021 at 17:06)</a>:</h4>
<p>we'd really need to bring back amanda's benchmarks to answer this question with some confidence, but we purposefully chose to ignore perf in order to focus on correctness / completeness</p>



<a name="247611875"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247611875" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247611875">(Jul 29 2021 at 17:07)</a>:</h4>
<p>tbf the "hybrid analysis" with the filtering I mentioned is very promising</p>



<a name="247611955"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247611955" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247611955">(Jul 29 2021 at 17:07)</a>:</h4>
<p>but even with that I'm not sure yet how fast is fast enough :) but we can all talk about that tomorrow for sure if that's of interest to everyone</p>



<a name="247612055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247612055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247612055">(Jul 29 2021 at 17:08)</a>:</h4>
<p>Yeah, for me "fast enough" for now is more like: Is this fast enough that testing modified rulesets locally isn't awful</p>



<a name="247612083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247612083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247612083">(Jul 29 2021 at 17:08)</a>:</h4>
<p>yeah</p>



<a name="247612088"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247612088" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247612088">(Jul 29 2021 at 17:08)</a>:</h4>
<p>Not "we could upstream this today and users wouldn't notice"</p>



<a name="247612118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247612118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247612118">(Jul 29 2021 at 17:08)</a>:</h4>
<p>in that case it absolutely is already fast enough, for development purposes</p>



<a name="247612188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247612188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247612188">(Jul 29 2021 at 17:09)</a>:</h4>
<p>we can easily improve the loc-ins analysis doing reachability queries, I remember it was an order of magnitude faster than the datalog one</p>



<a name="247612224"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247612224" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247612224">(Jul 29 2021 at 17:09)</a>:</h4>
<p>(Move/init is <em>not</em> at the first point from experience, hence why I spent more time talking about optimizations)</p>



<a name="247612271"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247612271" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247612271">(Jul 29 2021 at 17:09)</a>:</h4>
<p>agreed, of course :)</p>



<a name="247612458"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247612458" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247612458">(Jul 29 2021 at 17:11)</a>:</h4>
<p>The hybrid approach is mostly blocked on implementation complexity right? Integrating new information into the optimized variant was definitely beyond my capabilities. You seem able to do it though.</p>



<a name="247612464"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247612464" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247612464">(Jul 29 2021 at 17:11)</a>:</h4>
<p>all the points in your list sound good to me as well</p>



<a name="247612538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247612538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247612538">(Jul 29 2021 at 17:11)</a>:</h4>
<p>yeah I've "done it" before, before adding subset errors</p>



<a name="247612618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247612618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247612618">(Jul 29 2021 at 17:12)</a>:</h4>
<p>and then afterwards as well where it was more complicated, I don't think I've completed this though</p>



<a name="247612698"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247612698" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247612698">(Jul 29 2021 at 17:13)</a>:</h4>
<p>there's some "untested" analysis about this from niko if you're interested in that, I hadn't had the time to check it out yet (since last summer ....)</p>



<a name="247612732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247612732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247612732">(Jul 29 2021 at 17:13)</a>:</h4>
<p>I think I understand the "core idea" behind the optimized variant, but some documentation (both high-level and per-rule) would be really helpful, especially if you plan on onboarding more people. It was a pretty big hurdle for me.</p>



<a name="247612777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247612777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247612777">(Jul 29 2021 at 17:13)</a>:</h4>
<p>another good point</p>



<a name="247612852"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247612852" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247612852">(Jul 29 2021 at 17:14)</a>:</h4>
<p>(that we should add to a list)</p>



<a name="247612957"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247612957" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247612957">(Jul 29 2021 at 17:14)</a>:</h4>
<p>Well, I dunno. It's easy to say "you should document all of this", but that might not actually be the best use of time if a) the rules are changing and b) you don't plan on onboarding in the near future.</p>



<a name="247613014"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247613014" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247613014">(Jul 29 2021 at 17:15)</a>:</h4>
<p>That said, we should document <em>some</em> of this.</p>



<a name="247613102"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247613102" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247613102">(Jul 29 2021 at 17:15)</a>:</h4>
<p>right, I mostly meant that we shouldn't forget this idea, and then decide tomorrow whether it's a good use of our time</p>



<a name="247613183"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247613183" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247613183">(Jul 29 2021 at 17:16)</a>:</h4>
<p>but if we manage to have a more regular cadence, we should definitely both document and prepare for onboarding if we can</p>



<a name="247613195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247613195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247613195">(Jul 29 2021 at 17:16)</a>:</h4>
<p>(I'm happy to do that part BTW, since it's quite good for my understanding and leaves y'all free to work on more interesting stuff)</p>



<a name="247613345"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247613345" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247613345">(Jul 29 2021 at 17:18)</a>:</h4>
<p>I'll get you niko's comment about the hybrid analysis I'm thinking about</p>



<a name="247613675"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247613675" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247613675">(Jul 29 2021 at 17:20)</a>:</h4>
<p>I think it's <a href="https://github.com/rust-lang/polonius/issues/153#issuecomment-669413867">https://github.com/rust-lang/polonius/issues/153#issuecomment-669413867</a> but it's multiple comments really</p>



<a name="247614096"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247614096" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247614096">(Jul 29 2021 at 17:22)</a>:</h4>
<p>there are also some introductory comments about the optimized variant ^^</p>



<a name="247614329"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247614329" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247614329">(Jul 29 2021 at 17:24)</a>:</h4>
<p>(that you probably already know/understand)</p>



<a name="247614608"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247614608" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247614608">(Jul 29 2021 at 17:26)</a>:</h4>
<p>Right, I've read that thread before. The idea is that you can use the results of the location-insensitive variant to prune facts in the location-sensitive version right? Like, there's no need to propagate loans that are known not to be involved in borrow errors?</p>



<a name="247614625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247614625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247614625">(Jul 29 2021 at 17:26)</a>:</h4>
<p>exactly</p>



<a name="247614706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247614706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247614706">(Jul 29 2021 at 17:27)</a>:</h4>
<blockquote>
<p>I do think that having a datalog frontend that allows for succinct disjunctive rules would greatly benefit this type of stuff going forward, but a bespoke datalog compiler is a pretty big undertaking</p>
</blockquote>
<p>I'm also interested in this. Apart from the fact that it would obviously be some amount of effort to switch, from conversations I've had with someone working on DDLog (not Souffle, but from what I understand Frank McSherry was involved in creating the current <code>datafrog</code>), optimization of which joins are created when compiling the logical statements is still very much WIP in many places.</p>
<p>As a user/developer, it would be very nice indeed though if such an interface existed that could be used for specifying at least many of the rules, while maybe for some it would still be necessary  to fall back to "manual" Rust code on some lower level (which DDLog for example can already do). There is a lot of value (to me, personally) in not having to leave the "logic and rules" part of thinking about an analysis like this, that is basically formal verification, to deal with implementation and efficiency. Whether this is realistic is a very different question, ofc.</p>



<a name="247614710"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247614710" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247614710">(Jul 29 2021 at 17:27)</a>:</h4>
<p>the loans that aren't involved in location-insensitive errors can't trigger location-sensitive errors</p>



<a name="247614777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247614777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247614777">(Jul 29 2021 at 17:27)</a>:</h4>
<p>on this topic have you two seen "my" (mostly completely revamped by Vytautas really) <a href="https://github.com/lqd/datapond/">https://github.com/lqd/datapond/</a> ?</p>



<a name="247615000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247615000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247615000">(Jul 29 2021 at 17:29)</a>:</h4>
<p>(and similarly you can prune much of the subset graph downstream from the origins introducing these uninteresting loans)</p>



<a name="247615065"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247615065" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247615065">(Jul 29 2021 at 17:29)</a>:</h4>
<p>(I'm glossing over things just to get the point across)</p>



<a name="247615184"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247615184" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247615184">(Jul 29 2021 at 17:30)</a>:</h4>
<p><span class="user-mention silent" data-user-id="118594">ecstatic-morse</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247612732">said</a>:</p>
<blockquote>
<p>I think I understand the "core idea" behind the optimized variant, but some documentation (both high-level and per-rule) would be really helpful, especially if you plan on onboarding more people. It was a pretty big hurdle for me.</p>
</blockquote>
<p>Also I'll just add to this that, as someone who has not (yet?) actively worked on Polonius, reading the optimized analysis did leave some things unclear even with the current comments. I can kind of make out that things like <code>dead_borrow_region_can_reach_dead</code> (and the initially very confusing <code>dead_borrow_region_can_reach_dead_1</code>, whose purpose is then explained in some later comment) are used to limit what has to be considered for other rules, but how _exactly_ they interact is harder to see.</p>



<a name="247615241"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247615241" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247615241">(Jul 29 2021 at 17:30)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247613675">said</a>:</p>
<blockquote>
<p>I think it's <a href="https://github.com/rust-lang/polonius/issues/153#issuecomment-669413867">https://github.com/rust-lang/polonius/issues/153#issuecomment-669413867</a> but it's multiple comments really</p>
</blockquote>
<p>I'll try reading through this before tomorrow though, thanks for the link!</p>



<a name="247615299"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247615299" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247615299">(Jul 29 2021 at 17:31)</a>:</h4>
<p>(brb after dinner)</p>



<a name="247615575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247615575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247615575">(Jul 29 2021 at 17:33)</a>:</h4>
<p>I have yes. My preference for an alternative datalog engine (as opposed to a frontend for datafrog) is due to some more advanced features (integer predicates, dense storage) that would be nontrivial to implement. While we're still in a prototype phase, it seems like we should direct resources towards the rulesets and not towards a datalog engine. However, disjunction, rule inlining, and leaploin could be done without too much effort in <code>datapond</code> I think, so it remains a perfectly viable option.</p>



<a name="247615884"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247615884" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247615884">(Jul 29 2021 at 17:36)</a>:</h4>
<p>I remembered we talked about this last time, and had added "try using soufflé" to the list of possible things to talk about tomorrow</p>



<a name="247615888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247615888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247615888">(Jul 29 2021 at 17:36)</a>:</h4>
<p>I suspect that once you get used to writing rules by hand using the datafrog API it's actually not too bad, and you do gain some additional flexibility (I think there's some manual filtering of facts that's not expressible in datalog or something?). But it's pretty hard to read compared to pure datalog, so it will be harder to onboard people. You (<span class="user-mention silent" data-user-id="116113">lqd</span>) and <span class="user-mention silent" data-user-id="116009">nikomatsakis</span>  are basically the only people qualified to evaluate that tradeoff I would say</p>



<a name="247615976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247615976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247615976">(Jul 29 2021 at 17:36)</a>:</h4>
<p>Go eat!</p>



<a name="247616451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247616451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247616451">(Jul 29 2021 at 17:38)</a>:</h4>
<p>Also <span aria-label="hi" class="emoji emoji-1f44b" role="img" title="hi">:hi:</span> <span class="user-mention" data-user-id="337115">@Domenic Quirl</span>. I also find them pretty opaque. I suspect we could improve the state of things tomorrow.</p>



<a name="247616817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247616817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247616817">(Jul 29 2021 at 17:41)</a>:</h4>
<p>Gladly. My understanding is probably not enough yet to add new, definitive statements myself (and I'm also set to spend some time on the fact parser), but I'd love to take this opportunity to understand them more <span aria-label="relaxed" class="emoji emoji-263a" role="img" title="relaxed">:relaxed:</span></p>



<a name="247617200"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247617200" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247617200">(Jul 29 2021 at 17:44)</a>:</h4>
<p>Yeah, I'm probably only 80% there myself. I think the rule-by-rule documentation is actually pretty good, but a top-level overview of why dying regions are important would have helped me.</p>



<a name="247617333"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247617333" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247617333">(Jul 29 2021 at 17:45)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="w">           </span><span class="c1">// Cleanup step: remove symmetries</span>
<span class="w">            </span><span class="c1">// - remove origins which are `subset`s of themselves</span>
<span class="w">            </span><span class="c1">//</span>
<span class="w">            </span><span class="c1">// FIXME: investigate whether is there a better way to do that without complicating</span>
<span class="w">            </span><span class="c1">// the rules too much, because it would also require temporary variables and</span>
<span class="w">            </span><span class="c1">// impact performance. Until then, the big reduction in tuples improves performance</span>
<span class="w">            </span><span class="c1">// a lot, even if we're potentially adding a small number of tuples</span>
<span class="w">            </span><span class="c1">// per round just to remove them in the next round.</span>
<span class="w">            </span><span class="n">subset_o1p</span><span class="w"></span>
<span class="w">                </span><span class="p">.</span><span class="n">recent</span><span class="w"></span>
<span class="w">                </span><span class="p">.</span><span class="n">borrow_mut</span><span class="p">()</span><span class="w"></span>
<span class="w">                </span><span class="p">.</span><span class="n">elements</span><span class="w"></span>
<span class="w">                </span><span class="p">.</span><span class="n">retain</span><span class="p">(</span><span class="o">|&amp;</span><span class="p">((</span><span class="n">origin1</span><span class="p">,</span><span class="w"> </span><span class="n">_</span><span class="p">),</span><span class="w"> </span><span class="n">origin2</span><span class="p">)</span><span class="o">|</span><span class="w"> </span><span class="n">origin1</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">origin2</span><span class="p">);</span><span class="w"></span>
</code></pre></div>
<p>This is the "manual filtering" I was thinking of btw, it's definitely expressible in datalog.</p>



<a name="247617600"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247617600" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247617600">(Jul 29 2021 at 17:47)</a>:</h4>
<p>and we can use leapers to do that more cleanly, when using leapjoins</p>



<a name="247617849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247617849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247617849">(Jul 29 2021 at 17:49)</a>:</h4>
<p>there are some things that are inherited from NLLs, it is my recollection that the importance of dying regions is one of these things, but we can make sure of that tomorrow by asking niko</p>



<a name="247618645"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247618645" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247618645">(Jul 29 2021 at 17:55)</a>:</h4>
<p>(my recollection is, but I could be misremembering: during NLL development, these edges were recognized as important, to accept some patterns, leading to more expressive code accepted by the MIR borrowck)</p>



<a name="247619084"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247619084" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247619084">(Jul 29 2021 at 17:59)</a>:</h4>
<p>Oh, I wasn't aware that it was derived from NLL. The idea (as I understand it) is that so long as both origins are live, there's no need to eagerly propagate all their loans from one to the other. We can lazily traverse the subset relation among live regions for loans that are invalidated. This is no longer true once an origin dies, and the newly deceased origin could become live again, at which point any new member loans do not propagate back through prior subset relations.</p>



<a name="247619165"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247619165" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247619165">(Jul 29 2021 at 17:59)</a>:</h4>
<p>(Oh man, I need to think a bit harder about how to phrase this. I suspect that is not clear at all)</p>



<a name="247619969"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247619969" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247619969">(Jul 29 2021 at 18:05)</a>:</h4>
<p>my intuition is similar: loans are only propagated through the cfg via live origins, therefore when one dies, we try to see if it can reach another live origin to continue propagation. otherwise none of its contents will escape the dying point and we don't need to track it</p>



<a name="247620298"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247620298" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247620298">(Jul 29 2021 at 18:07)</a>:</h4>
<p>I actually made things a bit more complicated above. If there's a subset relation <code>'0: '1</code>, but both those origins are live, there's no need to propagate loans from '1 to '0 (or the reverse? I forget the direction) because it's a borrow error if a loan is invalidated while <em>any</em> region it belongs to is live.</p>



<a name="247620408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247620408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247620408">(Jul 29 2021 at 18:08)</a>:</h4>
<p>(yeah it propagates forward from '0 to '1)</p>



<a name="247620499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247620499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247620499">(Jul 29 2021 at 18:09)</a>:</h4>
<p>And the fact that '1 is live means it will cause that borrow error before any of its supersets, so we can ignore them.</p>



<a name="247620622"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247620622" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247620622">(Jul 29 2021 at 18:10)</a>:</h4>
<p>liveness doesn't really matter if you're talking about propagation at a single point though</p>



<a name="247620636"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247620636" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247620636">(Jul 29 2021 at 18:10)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247613675">said</a>:</p>
<blockquote>
<p>I think it's <a href="https://github.com/rust-lang/polonius/issues/153#issuecomment-669413867">https://github.com/rust-lang/polonius/issues/153#issuecomment-669413867</a> but it's multiple comments really</p>
</blockquote>
<p>In <a href="https://github.com/rust-lang/polonius/issues/153#issuecomment-669423499">https://github.com/rust-lang/polonius/issues/153#issuecomment-669423499</a> niko writes</p>
<blockquote>
<p>In particular, when an origin goes dead, it will remove that origin, but also compute the transitive closure of subset relations and things that origin may have been involved in, so that if you have O1: O2: O3 and O2 goes dead, we can add a subset(O1, O3) tuple (we will also add any loans found in O2 to O3 at this time). This means that the optimized errors never have a complete picture of which loans belong to which origins, and we also don't know the full set of "superset origins".</p>
</blockquote>



<a name="247620687"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247620687" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247620687">(Jul 29 2021 at 18:11)</a>:</h4>
<p>And further:</p>
<blockquote>
<p>This works out well for illegal access errors: for that purpose, we only care which loans are live, we don't care which origin they are found in. So we don't need to know those full sets.</p>
</blockquote>



<a name="247620732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247620732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247620732">(Jul 29 2021 at 18:11)</a>:</h4>
<p>nice :)</p>



<a name="247620866"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247620866" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247620866">(Jul 29 2021 at 18:12)</a>:</h4>
<p>(where, if I understand correctly, illegal access errors are the errors from "regular" loans and origins, as opposed to subset errors, which stem from placeholders?)</p>



<a name="247620886"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247620886" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247620886">(Jul 29 2021 at 18:12)</a>:</h4>
<p>(it remains to be seen whether that has any impact on diagnostics)</p>



<a name="247621056"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621056" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621056">(Jul 29 2021 at 18:14)</a>:</h4>
<p>illegal subset errors are specifically about the absence of a declared relationship between universal regions / free regions / named lifetimes in function headers</p>



<a name="247621114"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621114" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621114">(Jul 29 2021 at 18:14)</a>:</h4>
<p>(placeholders in polonius indeed) if such a subset relationship is found and it wasn't declared, it's an error</p>



<a name="247621121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621121">(Jul 29 2021 at 18:14)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247620622">said</a>:</p>
<blockquote>
<p>liveness doesn't really matter if you're talking about propagation at a single point though</p>
</blockquote>
<p>Not quite sure what you mean here. A borrow error happens when a loan is invalidated while an origin containing that loan is live.</p>



<a name="247621151"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621151" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621151">(Jul 29 2021 at 18:15)</a>:</h4>
<p>sure</p>



<a name="247621184"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621184" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621184">(Jul 29 2021 at 18:15)</a>:</h4>
<p>what I mean is that the loan will be propagated at that point regardless of liveness</p>



<a name="247621317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621317">(Jul 29 2021 at 18:16)</a>:</h4>
<p>and thei<br>
<span class="user-mention silent" data-user-id="118594">ecstatic-morse</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247620499">said</a>:</p>
<blockquote>
<p>And the fact that '1 is live means it will cause that borrow error before any of its supersets, so we can ignore them.</p>
</blockquote>
<p>and that I'm not sure about this "before" here</p>



<a name="247621322"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621322" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621322">(Jul 29 2021 at 18:16)</a>:</h4>
<p>Really? don't we only propagate loans into live origins?</p>
<div class="codehilite"><pre><span></span><code>            // origin_contains_loan_on_entry(origin, loan, point2) :-
            //   origin_contains_loan_on_entry(origin, loan, point1),
            //   !loan_killed_at(loan, point1),
            //   cfg_edge(point1, point2),
            //   origin_live_on_entry(origin, point2).
</code></pre></div>



<a name="247621346"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621346" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621346">(Jul 29 2021 at 18:16)</a>:</h4>
<p>ok so</p>



<a name="247621369"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621369" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621369">(Jul 29 2021 at 18:16)</a>:</h4>
<p>loans are propagated in two ways</p>



<a name="247621379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621379">(Jul 29 2021 at 18:16)</a>:</h4>
<p>1) at a single point through subsets</p>



<a name="247621408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621408">(Jul 29 2021 at 18:17)</a>:</h4>
<p>2) between 2 points, like the rule you show, according to liveness</p>



<a name="247621576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621576">(Jul 29 2021 at 18:18)</a>:</h4>
<p>so at a single point a loan can flow in and out of dead origins, but not continue its path through the cfg without live origins</p>



<a name="247621606"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621606" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621606">(Jul 29 2021 at 18:19)</a>:</h4>
<p>Right, but subset relations only get propagated between points for live origins, so 1) is also dependent on liveness but indirectly.</p>



<a name="247621638"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621638" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621638">(Jul 29 2021 at 18:19)</a>:</h4>
<p>yeah but there can be subset relationships at a given point without them having been propagated</p>



<a name="247621702"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621702" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621702">(Jul 29 2021 at 18:20)</a>:</h4>
<p>Only <code>subset_base</code> though</p>



<a name="247621738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621738">(Jul 29 2021 at 18:20)</a>:</h4>
<p>and their TC but yeah</p>



<a name="247621745"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621745" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621745">(Jul 29 2021 at 18:20)</a>:</h4>
<p>(the transitive closure of <code>subset_base</code>)</p>



<a name="247621754"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621754" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621754">(Jul 29 2021 at 18:20)</a>:</h4>
<p>^^</p>



<a name="247621807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621807">(Jul 29 2021 at 18:21)</a>:</h4>
<p>But when do we have a constraint in <code>subset_base</code> for an origin that isn't live?</p>



<a name="247621868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621868">(Jul 29 2021 at 18:21)</a>:</h4>
<p>it's my belief that most subsets are about dead origins</p>



<a name="247621956"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247621956" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247621956">(Jul 29 2021 at 18:22)</a>:</h4>
<p>maybe "most" is a bit me projecting, but I was looking at this once and was surprised. even when loans are introduced</p>



<a name="247622011"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247622011" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247622011">(Jul 29 2021 at 18:23)</a>:</h4>
<p>Hmm, that's interesting. My impression is that <code>origin_contains_loan_on_entry</code> is mostly about dead origins.</p>



<a name="247622067"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247622067" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247622067">(Jul 29 2021 at 18:23)</a>:</h4>
<p>Not sure whether this is a meaningful disagreement or a semantic one</p>



<a name="247622084"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247622084" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247622084">(Jul 29 2021 at 18:23)</a>:</h4>
<p>we'll need to validate these assumptions in any case :)</p>



<a name="247622170"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247622170" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247622170">(Jul 29 2021 at 18:24)</a>:</h4>
<p>Because that's what "remembers" the loans that have been propagated across subset relations for regions that were formerly alive.</p>



<a name="247622184"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247622184" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247622184">(Jul 29 2021 at 18:24)</a>:</h4>
<p>oh I'm not disagreeing with the core of what you're saying, to be clear. I'm sorry if I have given this impression !</p>



<a name="247622508"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247622508" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247622508">(Jul 29 2021 at 18:26)</a>:</h4>
<p>My understanding of the optimized variant was that it delays propagating loans between origins that are still alive, because a borrow error will be created for whatever origin contains an invalidated loan. There's no need to find <em>all</em> live origins that contain the invalidated loan. (this is what I meant with "before", though it's not "before" in time, more like "before" when traversing the graph of subset relations)</p>



<a name="247622673"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247622673" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247622673">(Jul 29 2021 at 18:28)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247622184">said</a>:</p>
<blockquote>
<p>oh I'm not disagreeing with the core of what you're saying, to be clear. I'm sorry if I have given this impression !</p>
</blockquote>
<p>Disagreeing is good if it furthers one of our understandings. For the record, you are one of the most pleasant people to disagree with I have encountered in a professional setting.</p>



<a name="247622755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247622755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247622755">(Jul 29 2021 at 18:28)</a>:</h4>
<p>I don't think many would say the same about me :smiling:</p>



<a name="247622777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247622777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247622777">(Jul 29 2021 at 18:29)</a>:</h4>
<p>our only disagreement is about vEB trees <span aria-label="upside down" class="emoji emoji-1f643" role="img" title="upside down">:upside_down:</span></p>



<a name="247622801"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247622801" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247622801">(Jul 29 2021 at 18:29)</a>:</h4>
<p><span class="user-mention silent" data-user-id="118594">ecstatic-morse</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247622067">said</a>:</p>
<blockquote>
<p>Not sure whether this is a meaningful disagreement or a semantic one</p>
</blockquote>
<p>This was more about whether my hypothesis is testable.</p>



<a name="247622844"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247622844" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247622844">(Jul 29 2021 at 18:29)</a>:</h4>
<p>(I have to leave for a quick meeting)</p>



<a name="247622919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247622919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247622919">(Jul 29 2021 at 18:30)</a>:</h4>
<p>No worries. We should be having this conversation with Niko present anyways.</p>



<a name="247629453"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247629453" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247629453">(Jul 29 2021 at 19:26)</a>:</h4>
<p>this paragraph <a href="https://gist.github.com/nikomatsakis/8bfda6c1119727e13ec6e98f33d2b696#future-directions-let-the-trait-solver-solve-higher-ranked-things">https://gist.github.com/nikomatsakis/8bfda6c1119727e13ec6e98f33d2b696#future-directions-let-the-trait-solver-solve-higher-ranked-things</a> will be interesting wrt the chalk+polonius collaboration that we mentioned in passing earlier</p>



<a name="247629867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247629867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247629867">(Jul 29 2021 at 19:29)</a>:</h4>
<p>(btw <span class="user-mention" data-user-id="118594">@ecstatic-morse</span> since you mentioned Y-fast tries, I'll continue this chain with <code>lqdag</code>s if you enjoy compact data structures -- and which are <em>not</em> named after me :)</p>



<a name="247630102"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247630102" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247630102">(Jul 29 2021 at 19:31)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247629867">said</a>:</p>
<blockquote>
<p>(btw <span class="user-mention silent" data-user-id="118594">ecstatic-morse</span> since you mentioned Y-fast tries, I'll continue this chain with <code>lqdag</code>s if you enjoy compact data structures -- and which are <em>not</em> named after me <span aria-label="smile" class="emoji emoji-1f642" role="img" title="smile">:smile:</span></p>
</blockquote>
<p>You're giving me too much credit, I definitely said Y-trie <span aria-label="laughing" class="emoji emoji-1f606" role="img" title="laughing">:laughing:</span> . In my defense, I only skimmed that chapter.</p>



<a name="247630326"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247630326" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247630326">(Jul 29 2021 at 19:33)</a>:</h4>
<p>which book are you thinking of btw ?</p>



<a name="247630352"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247630352" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247630352">(Jul 29 2021 at 19:34)</a>:</h4>
<p>ODS ?</p>



<a name="247631539"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247631539" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247631539">(Jul 29 2021 at 19:44)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247630326">said</a>:</p>
<blockquote>
<p>which book are you thinking of btw ?</p>
</blockquote>
<p>I actually think I learned about vEB tries from an MIT lecture series. I don't know if it's in ODS.</p>



<a name="247631639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247631639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247631639">(Jul 29 2021 at 19:44)</a>:</h4>
<p>erik demaine's series ! so good</p>



<a name="247631983"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247631983" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247631983">(Jul 29 2021 at 19:47)</a>:</h4>
<p>Haha yeah! He's the one that really made dynamic programming click for me as a concept. The "optimal fingering for guitar" example in particular</p>



<a name="247632009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247632009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247632009">(Jul 29 2021 at 19:47)</a>:</h4>
<p>But now we're really off-topic</p>



<a name="247698968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247698968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247698968">(Jul 30 2021 at 12:03)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116109">Vytautas Astrauskas [he/him]</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247023352">said</a>:</p>
<blockquote>
<p>Prusti has code that does this, so if you want I can try moving that code to the Rust compiler. However, there is one problem: if we try to display all facts all the same time, the visualization becomes unreadable. Therefore, we need an option that controls what information should be included in the graphviz file.</p>
<p>Let me know what are your thoughts on this.</p>
</blockquote>
<p>Another option would be to dump as much data as possible and then have a tool select parts of that data to generate various visualisations, ideally interactively, but that's not exactly the minimal viable product version.</p>
<p>(Hi I'm preparing for the hackathon by, among other things, reading up on my enormous backlog).</p>



<a name="247699152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247699152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247699152">(Jul 30 2021 at 12:05)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/246890190">said</a>:</p>
<blockquote>
<p>not everyone can be in an environment for long calls.</p>
</blockquote>
<p>I have sole custody of our puppy today for some slightly complicated reasons, so I can't be in long calls or even work unlimited bursts, but this is also why I start early to make up. Also: gosh darn it I'm rusty.</p>



<a name="247699745"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247699745" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247699745">(Jul 30 2021 at 12:11)</a>:</h4>
<p><span class="user-mention silent" data-user-id="118594">Dylan MacKenzie (ecstatic-morse)</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247609442">said</a>:</p>
<blockquote>
<ul>
<li>Move/init analysis<ul>
<li>This isn't a top priority for me RN, since it's trying to replicate the existing analyses in <code>rustc</code> rather than breaking new ground. However, I think this will change once librarification is further along, because it will be important for analysis/verification tools built on top of Polonius.</li>
<li>As I understand it, datalog version is quite slow at the moment because the set of init/uninit facts is dense. I've looked at a few ways to mitigate this (all of them mentioned by <span class="user-mention silent" data-user-id="116113">lqd</span> already). We could ignore uninteresting points in the CFG (this may already be implemented?), incorporate basic blocks into the datalog rules to avoid explicitly computing intrablock init/uninit facts, or extend Datalog with an alternate way of storing facts (sets of tuples are not ideal for dense relations, Souffle has a bespoke data-structure for this).</li>
<li>Hoping to talk with <span class="user-mention silent" data-user-id="204115">Amanda Stjerna</span> about some of this, since I suspect they have more insight than I do.</li>
</ul>
</li>
</ul>
</blockquote>
<p>Bold assumption!</p>
<blockquote>
<p>Mostly, I'm interested in Polonius as a way to implement powerful, lifetime-aware alias/pointer analyses for use in optimization and formal verification. I assume that making Polonius a viable candidate for the actual upstream borrow-checker is an important part of this, but maybe we could be doing more to help the Prusti folks (and others working on formal verification) in the interim?</p>
</blockquote>
<p>I think this is a great idea and that's also one of the things I hope to look into at my upcoming 6-month internship, which also is about extracting precisely that information. I'm getting the impression that there's a crowd lining up to get the sort of data Polonius consumes and, in some cases, produces intermittently, and that it would make sense and accelerate work on verification etc to provide a better interface to that, even if it's no-promises-made-holds-together-with-duct-tape quality.</p>



<a name="247701396"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247701396" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247701396">(Jul 30 2021 at 12:30)</a>:</h4>
<p>Also, if anyone's missed it, <a href="/user_uploads/4715/Lng_BM1wQiSsZVZlLnpNRQ8R/Thesis.pdf">here's my thesis again</a></p>



<a name="247707158"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247707158" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247707158">(Jul 30 2021 at 13:25)</a>:</h4>
<p><span class="user-mention silent" data-user-id="204115">Amanda Stjerna</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247699152">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/246890190">said</a>:</p>
<blockquote>
<p>not everyone can be in an environment for long calls.</p>
</blockquote>
<p>I can't be in long calls or even work unlimited bursts</p>
</blockquote>
<p>I doubt niko's able to do calls either</p>



<a name="247709660"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247709660" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247709660">(Jul 30 2021 at 13:44)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> so I'm trying to catch up on all this :)</p>



<a name="247709848"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247709848" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247709848">(Jul 30 2021 at 13:46)</a>:</h4>
<p><span class="user-mention silent" data-user-id="204115">Amanda Stjerna</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247699745">said</a>:</p>
<blockquote>
<p>I'm getting the impression that there's a crowd lining up to get the sort of data Polonius consumes and, in some cases, produces intermittently, and that it would make sense and accelerate work on verification etc to provide a better interface to that, even if it's no-promises-made-holds-together-with-duct-tape quality.</p>
</blockquote>
<p>a bit scary, it's incomplete, doesn't always work, etc could be shaky grounds for serious formal work ? :)</p>



<a name="247710193"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247710193" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247710193">(Jul 30 2021 at 13:48)</a>:</h4>
<p><span aria-label="hi" class="emoji emoji-1f44b" role="img" title="hi">:hi:</span> all</p>



<a name="247710425"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247710425" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247710425">(Jul 30 2021 at 13:50)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> you had a list of things early on, is that pulled out into a hackmd or something?</p>



<a name="247710439"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247710439" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247710439">(Jul 30 2021 at 13:50)</a>:</h4>
<p>not atm but I'll do that</p>



<a name="247710448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247710448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247710448">(Jul 30 2021 at 13:51)</a>:</h4>
<p>good</p>



<a name="247710470"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247710470" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247710470">(Jul 30 2021 at 13:51)</a>:</h4>
<p>also one thing I'd like to discuss is "next sprint timing" :P</p>



<a name="247710475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247710475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247710475">(Jul 30 2021 at 13:51)</a>:</h4>
<p>(it's <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/246830005">https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/246830005</a> rn)</p>



<a name="247710621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247710621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247710621">(Jul 30 2021 at 13:52)</a>:</h4>
<p><a href="https://hackmd.io/1t4CR635QKKFTRN-2qexsg">https://hackmd.io/1t4CR635QKKFTRN-2qexsg</a></p>



<a name="247710659"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247710659" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247710659">(Jul 30 2021 at 13:52)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> a sprint like 4 days, or 4h with a more regular cadence ?</p>



<a name="247710693"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247710693" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247710693">(Jul 30 2021 at 13:53)</a>:</h4>
<p>what I meant is: is this a 1-off thing, or should we try again in a month or so :)</p>



<a name="247710711"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247710711" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247710711">(Jul 30 2021 at 13:53)</a>:</h4>
<p>maybe too early to say</p>



<a name="247710742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247710742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247710742">(Jul 30 2021 at 13:53)</a>:</h4>
<p>I guess I think we should try again</p>



<a name="247710756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247710756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247710756">(Jul 30 2021 at 13:53)</a>:</h4>
<p>and that may affect our priorities a touch</p>



<a name="247710757"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247710757" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247710757">(Jul 30 2021 at 13:53)</a>:</h4>
<p>if the second one, I've started vacation a couple hours ago, so won't be available in 2 weeks, but in 4 definitely</p>



<a name="247710833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247710833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vytautas Astrauskas [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247710833">(Jul 30 2021 at 13:54)</a>:</h4>
<p><span class="user-mention silent" data-user-id="204115">Amanda Stjerna</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247698968">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="116109">Vytautas Astrauskas [he/him]</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247023352">said</a>:</p>
<blockquote>
<p>Prusti has code that does this, so if you want I can try moving that code to the Rust compiler. However, there is one problem: if we try to display all facts all the same time, the visualization becomes unreadable. Therefore, we need an option that controls what information should be included in the graphviz file.</p>
<p>Let me know what are your thoughts on this.</p>
</blockquote>
<p>Another option would be to dump as much data as possible and then have a tool select parts of that data to generate various visualisations, ideally interactively, but that's not exactly the minimal viable product version.</p>
</blockquote>
<p>I think it would be super cool to have such an interactive tool, but not sure I have time for that right now… ☹</p>



<a name="247710905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247710905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247710905">(Jul 30 2021 at 13:54)</a>:</h4>
<p>so bi monthly is ok with everyone (no obligation to join every time of course) we can make it a regular thing, we probably should imo</p>



<a name="247711015"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247711015" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247711015">(Jul 30 2021 at 13:55)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247710756">said</a>:</p>
<blockquote>
<p>and that may affect our priorities a touch</p>
</blockquote>
<p>in the sense, that what we should do today would include some preparation for the longer term you mean ?</p>



<a name="247711201"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247711201" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247711201">(Jul 30 2021 at 13:57)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247710757">said</a>:</p>
<blockquote>
<p>if the second one, I've started vacation a couple hours ago, so won't be available in 2 weeks, but in 4 definitely</p>
</blockquote>
<p>I'm not available in 2 weeks either :)</p>



<a name="247711202"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247711202" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247711202">(Jul 30 2021 at 13:57)</a>:</h4>
<p>we can pencil in <time datetime="2021-08-27T14:00:00Z">2021-08-27T16:00:00+02:00</time> for the next one :)</p>



<a name="247711268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247711268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247711268">(Jul 30 2021 at 13:57)</a>:</h4>
<p>Yeah, that works I think</p>



<a name="247711371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247711371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247711371">(Jul 30 2021 at 13:58)</a>:</h4>
<p>let's do it, hopefully more people can join at that time as well</p>



<a name="247711442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247711442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247711442">(Jul 30 2021 at 13:59)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247711371">said</a>:</p>
<blockquote>
<p>let's do it, hopefully more people can join at that time as well</p>
</blockquote>
<p>Works for me, I'm pretty flexible as long as I have advance notice.</p>



<a name="247711517"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247711517" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247711517">(Jul 30 2021 at 13:59)</a>:</h4>
<p>ok, gonna go grab some coffee, brb</p>



<a name="247711626"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247711626" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247711626">(Jul 30 2021 at 14:00)</a>:</h4>
<p>/me is reading <span class="user-mention silent" data-user-id="204115">Amanda Stjerna</span>'s thesis</p>



<a name="247711751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247711751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247711751">(Jul 30 2021 at 14:01)</a>:</h4>
<p>hmm, actually, <span class="user-mention" data-user-id="204115">@Amanda Stjerna</span>, where can I find that :)</p>



<a name="247711760"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247711760" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247711760">(Jul 30 2021 at 14:01)</a>:</h4>
<p>I should put it in my PDF library, I don't thikn it's there</p>



<a name="247711765"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247711765" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247711765">(Jul 30 2021 at 14:01)</a>:</h4>
<p><span class="user-mention silent" data-user-id="204115">Amanda Stjerna</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247701396">said</a>:</p>
<blockquote>
<p>Also, if anyone's missed it, <a href="/user_uploads/4715/Lng_BM1wQiSsZVZlLnpNRQ8R/Thesis.pdf">here's my thesis again</a></p>
</blockquote>



<a name="247711832"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247711832" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247711832">(Jul 30 2021 at 14:02)</a>:</h4>
<p>Hello all <span aria-label="wave" class="emoji emoji-1f44b" role="img" title="wave">:wave:</span></p>



<a name="247711991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247711991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247711991">(Jul 30 2021 at 14:03)</a>:</h4>
<p>btw <span class="user-mention" data-user-id="204115">@Amanda Stjerna</span> you had a repository of benchmarks that you used to gather stats for the thesis IIRC, is the repo available somewhere ? ( I think it was)</p>



<a name="247712139"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712139" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712139">(Jul 30 2021 at 14:04)</a>:</h4>
<p>all right, shall we get started?</p>



<a name="247712169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712169">(Jul 30 2021 at 14:04)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247710621">said</a>:</p>
<blockquote>
<p><a href="https://hackmd.io/1t4CR635QKKFTRN-2qexsg">https://hackmd.io/1t4CR635QKKFTRN-2qexsg</a></p>
</blockquote>
<p>lqd's notes</p>



<a name="247712195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712195">(Jul 30 2021 at 14:05)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247711202">said</a>:</p>
<blockquote>
<p>we can pencil in <time datetime="2021-08-27T14:00:00Z">2021-08-27T16:00:00+02:00</time> for the next one :)</p>
</blockquote>
<p>loose plan for next sprint</p>



<a name="247712232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712232">(Jul 30 2021 at 14:05)</a>:</h4>
<p>I guess the first question is who is here :)</p>



<a name="247712296"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712296" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712296">(Jul 30 2021 at 14:05)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247711991">said</a>:</p>
<blockquote>
<p>btw <span class="user-mention silent" data-user-id="204115">Amanda Stjerna</span> you had a repository of benchmarks that you used to gather stats for the thesis IIRC, is the repo available somewhere ? ( I think it was)</p>
</blockquote>
<p>Here it is! <a href="https://github.com/amandasystems/msc-polonius-fact-study">https://github.com/amandasystems/msc-polonius-fact-study</a></p>



<a name="247712300"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712300" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712300">(Jul 30 2021 at 14:05)</a>:</h4>
<p>I don't remember how much of a "polonius roadmap" we have written down, <span class="user-mention" data-user-id="116113">@lqd</span></p>



<a name="247712380"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712380" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712380">(Jul 30 2021 at 14:06)</a>:</h4>
<p>I remember one <span aria-label="joy" class="emoji emoji-1f602" role="img" title="joy">:joy:</span></p>



<a name="247712421"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712421" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712421">(Jul 30 2021 at 14:06)</a>:</h4>
<p>but not how much we had written it down</p>



<a name="247712524"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712524" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712524">(Jul 30 2021 at 14:07)</a>:</h4>
<p>ok-- I'm thinking (a) it'd be useful to review that and (b) to get an idea of what the folks who are here are looking to do (if they have a plan)</p>



<a name="247712530"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712530" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712530">(Jul 30 2021 at 14:07)</a>:</h4>
<p>Does <a href="https://rust-lang.github.io/polonius/current_status.html">https://rust-lang.github.io/polonius/current_status.html</a> count? <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="247712532"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712532" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712532">(Jul 30 2021 at 14:07)</a>:</h4>
<p>I had something like this <a href="https://hackmd.io/zZFc7xCWQpK_mssQbiZqeQ">https://hackmd.io/zZFc7xCWQpK_mssQbiZqeQ</a></p>



<a name="247712604"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712604" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712604">(Jul 30 2021 at 14:08)</a>:</h4>
<p><span class="user-mention silent" data-user-id="337115">Domenic Quirl</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247712530">said</a>:</p>
<blockquote>
<p>Does <a href="https://rust-lang.github.io/polonius/current_status.html">https://rust-lang.github.io/polonius/current_status.html</a> count? <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>
</blockquote>
<p>actually not terrible :) but perhaps a bit more detail... :)</p>



<a name="247712666"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712666" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712666">(Jul 30 2021 at 14:08)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247712532">said</a>:</p>
<blockquote>
<p>I had something like this <a href="https://hackmd.io/zZFc7xCWQpK_mssQbiZqeQ">https://hackmd.io/zZFc7xCWQpK_mssQbiZqeQ</a></p>
</blockquote>
<p>this looks nice :)</p>



<a name="247712674"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712674" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712674">(Jul 30 2021 at 14:08)</a>:</h4>
<p>(but it's quite old at this point, not that so much has changed since then that it's completely invalidated)</p>



<a name="247712684"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712684" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712684">(Jul 30 2021 at 14:08)</a>:</h4>
<p>I'm also remembering that in the last sprint we had a kind of doc, too, right?</p>



<a name="247712709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712709">(Jul 30 2021 at 14:08)</a>:</h4>
<p>we should probably make a hackmd team</p>



<a name="247712712"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712712" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712712">(Jul 30 2021 at 14:08)</a>:</h4>
<p>those are useful</p>



<a name="247712736"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712736" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712736">(Jul 30 2021 at 14:08)</a>:</h4>
<p>yes, I'll try to find the docs from last sprint</p>



<a name="247712797"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712797" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712797">(Jul 30 2021 at 14:09)</a>:</h4>
<p>did you know, <span class="user-mention" data-user-id="116113">@lqd</span> , that there are two hackmd users with the name "lqd"?</p>



<a name="247712807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712807">(Jul 30 2021 at 14:09)</a>:</h4>
<p>yeah :/</p>



<a name="247712839"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712839" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712839">(Jul 30 2021 at 14:09)</a>:</h4>
<p>one of those was created via GH and the other not maybe</p>



<a name="247712873"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712873" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712873">(Jul 30 2021 at 14:09)</a>:</h4>
<p>that's super confusing including for me ...</p>



<a name="247712890"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712890" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712890">(Jul 30 2021 at 14:09)</a>:</h4>
<p>rules doc <a href="https://hackmd.io/CGMNjt1hR_qYtsR9hgdGmw?view">https://hackmd.io/CGMNjt1hR_qYtsR9hgdGmw?view</a></p>



<a name="247712897"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712897" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712897">(Jul 30 2021 at 14:09)</a>:</h4>
<p>are they both you? :)</p>



<a name="247712922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712922">(Jul 30 2021 at 14:10)</a>:</h4>
<p>I believe so :3</p>



<a name="247712998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247712998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247712998">(Jul 30 2021 at 14:10)</a>:</h4>
<p>ok so <a href="https://hackmd.io/@polonius">https://hackmd.io/@polonius</a> exists now</p>



<a name="247713004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713004">(Jul 30 2021 at 14:10)</a>:</h4>
<p>I added lqd, I can add others too</p>



<a name="247713009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713009">(Jul 30 2021 at 14:10)</a>:</h4>
<p>but we can collect docs in there</p>



<a name="247713031"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713031" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713031">(Jul 30 2021 at 14:10)</a>:</h4>
<p>hackmd picks up one of the accounts randomly when I use it ...</p>



<a name="247713094"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713094" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713094">(Jul 30 2021 at 14:11)</a>:</h4>
<p><a href="https://hackmd.io/c6ooQFV-QJilsmEE15FsKQ">https://hackmd.io/c6ooQFV-QJilsmEE15FsKQ</a> &lt;-- from previous sprint :)</p>



<a name="247713108"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713108" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713108">(Jul 30 2021 at 14:11)</a>:</h4>
<p>I have <code>@amandas</code> by the way</p>



<a name="247713113"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713113" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713113">(Jul 30 2021 at 14:11)</a>:</h4>
<p>I'm <code>ecstatic-morse</code> on HackMD</p>



<a name="247713118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713118">(Jul 30 2021 at 14:11)</a>:</h4>
<p>previous sprint tracking <a href="https://hackmd.io/c6ooQFV-QJilsmEE15FsKQ">https://hackmd.io/c6ooQFV-QJilsmEE15FsKQ</a></p>



<a name="247713137"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713137" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713137">(Jul 30 2021 at 14:11)</a>:</h4>
<p>ah you already found it :)</p>



<a name="247713323"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713323" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713323">(Jul 30 2021 at 14:13)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247712532">said</a>:</p>
<blockquote>
<p>I had something like this <a href="https://hackmd.io/zZFc7xCWQpK_mssQbiZqeQ">https://hackmd.io/zZFc7xCWQpK_mssQbiZqeQ</a></p>
</blockquote>
<p>can you transfer this into the polonius team?</p>



<a name="247713358"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713358" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713358">(Jul 30 2021 at 14:13)</a>:</h4>
<p>I'm going to make a doc for this sprint</p>



<a name="247713379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713379">(Jul 30 2021 at 14:13)</a>:</h4>
<p>or, we can use the one <span class="user-mention" data-user-id="116113">@lqd</span> already made, duh</p>



<a name="247713382"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713382" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713382">(Jul 30 2021 at 14:13)</a>:</h4>
<p>I needed to change my handle because I joined hackmd with github. Am now <code>@domenicquirl</code></p>



<a name="247713391"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713391" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713391">(Jul 30 2021 at 14:13)</a>:</h4>
<p>(if you transfer it in)</p>



<a name="247713420"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713420" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713420">(Jul 30 2021 at 14:13)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247713323">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247712532">said</a>:</p>
<blockquote>
<p>I had something like this <a href="https://hackmd.io/zZFc7xCWQpK_mssQbiZqeQ">https://hackmd.io/zZFc7xCWQpK_mssQbiZqeQ</a></p>
</blockquote>
<p>can you transfer this into the polonius team?</p>
</blockquote>
<p>done</p>



<a name="247713505"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713505" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713505">(Jul 30 2021 at 14:14)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247713391">said</a>:</p>
<blockquote>
<p>(if you transfer it in)</p>
</blockquote>
<p>done as well</p>



<a name="247713512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713512">(Jul 30 2021 at 14:14)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247712890">said</a>:</p>
<blockquote>
<p>rules doc <a href="https://hackmd.io/CGMNjt1hR_qYtsR9hgdGmw?view">https://hackmd.io/CGMNjt1hR_qYtsR9hgdGmw?view</a></p>
</blockquote>
<p>From a quick look, this has more (namely, anything) on initialization and liveness than the book, but doesn't have the optimized variant?</p>



<a name="247713525"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713525" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713525">(Jul 30 2021 at 14:14)</a>:</h4>
<p>also <a href="https://hackmd.io/1t4CR635QKKFTRN-2qexsg">this one</a>, <span class="user-mention" data-user-id="116113">@lqd</span></p>



<a name="247713528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713528">(Jul 30 2021 at 14:14)</a>:</h4>
<p><span class="user-mention" data-user-id="204115">@Amanda Stjerna</span> Is section <strong>6.5.3</strong> from your thesis discussed on the roadmap anywhere? Or is it solved now?</p>



<a name="247713553"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713553" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713553">(Jul 30 2021 at 14:14)</a>:</h4>
<p><span class="user-mention" data-user-id="337115">@Domenic Quirl</span> that sounds right, the plan was to remove the optimized variant</p>



<a name="247713555"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713555" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713555">(Jul 30 2021 at 14:14)</a>:</h4>
<p>Addressing a Provenance Variable Imprecision Bug</p>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">z</span>: <span class="kt">u32</span><span class="p">;</span><span class="w"></span>
<span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">x</span>: <span class="kp">&amp;</span><span class="o">'</span><span class="na">x</span> <span class="kt">u32</span><span class="p">;</span><span class="w"></span>
<span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">y</span>: <span class="kp">&amp;</span><span class="o">'</span><span class="na">y</span> <span class="kt">u32</span><span class="p">;</span><span class="w"></span>
<span class="k">if</span><span class="w"> </span><span class="n">something</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">x</span><span class="p">;</span><span class="w"> </span><span class="c1">// creates `'x subset-of 'y`.</span>
<span class="p">}</span><span class="w"></span>
<span class="k">if</span><span class="w"> </span><span class="n">something</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="n">z</span><span class="p">;</span><span class="w"> </span><span class="c1">// creates {L0} in 'x constraint.</span>
<span class="c1">//</span>
<span class="c1">// at this point, we have</span>
<span class="c1">// `'x subset-of 'y` and `{L0} in `'x`,</span>
<span class="c1">// so we also have `{L0} in 'y` (wrong).</span>
<span class="nb">drop</span><span class="p">(</span><span class="n">x</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
<span class="n">z</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// Polonius: false positive error</span>
<span class="nb">drop</span><span class="p">(</span><span class="n">y</span><span class="p">);</span><span class="w"></span>
</code></pre></div>



<a name="247713561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713561">(Jul 30 2021 at 14:14)</a>:</h4>
<p>get everything <em>correct first</em></p>



<a name="247713566"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713566" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713566">(Jul 30 2021 at 14:15)</a>:</h4>
<p>and then revisit optimizations</p>



<a name="247713590"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713590" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713590">(Jul 30 2021 at 14:15)</a>:</h4>
<p>especially because there  were some things we wanted to settle about precision</p>



<a name="247713624"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713624" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713624">(Jul 30 2021 at 14:15)</a>:</h4>
<p>Ohh ok, good to know</p>



<a name="247713627"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713627" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713627">(Jul 30 2021 at 14:15)</a>:</h4>
<p>but also because it seemed like <span class="user-mention" data-user-id="116113">@lqd</span>'s experiments suggested that we could get a lot of the optimization we want from relatively simple filtering tests</p>



<a name="247713629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713629">(Jul 30 2021 at 14:15)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247713525">said</a>:</p>
<blockquote>
<p>also <a href="https://hackmd.io/1t4CR635QKKFTRN-2qexsg">this one</a>, <span class="user-mention silent" data-user-id="116113">lqd</span></p>
</blockquote>
<p>I think I did that one, right ?</p>



<a name="247713640"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713640" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713640">(Jul 30 2021 at 14:15)</a>:</h4>
<p>possibly</p>



<a name="247713680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713680">(Jul 30 2021 at 14:15)</a>:</h4>
<p>(seems like the owner is indeed the polonius team)</p>



<a name="247713770"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713770" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713770">(Jul 30 2021 at 14:16)</a>:</h4>
<p>great!</p>



<a name="247713776"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713776" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713776">(Jul 30 2021 at 14:16)</a>:</h4>
<p>ok, so I'm poking at it</p>



<a name="247713789"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713789" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713789">(Jul 30 2021 at 14:16)</a>:</h4>
<p>I think it'd be good to map out some tasks :)</p>



<a name="247713815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713815">(Jul 30 2021 at 14:16)</a>:</h4>
<p>it seems like one thing for me to do is to review stuff</p>



<a name="247713834"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713834" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713834">(Jul 30 2021 at 14:16)</a>:</h4>
<p><span class="user-mention silent" data-user-id="118594">Dylan MacKenzie (ecstatic-morse)</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247713528">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="204115">Amanda Stjerna</span> Is section <strong>6.5.3</strong> from your thesis discussed on the roadmap anywhere? Or is it solved now?</p>
</blockquote>
<p>I think most of the work on this happened sort of over my head, for <span class="user-mention" data-user-id="116009">@nikomatsakis</span>  and <span class="user-mention" data-user-id="116113">@lqd</span> who worked on this, that's the provenance variable imprecision bug: <a href="/user_uploads/4715/FmN9IrwFMSXXwrxlp7eAKzHP/image.png">image.png</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/FmN9IrwFMSXXwrxlp7eAKzHP/image.png" title="image.png"><img src="/user_uploads/4715/FmN9IrwFMSXXwrxlp7eAKzHP/image.png"></a></div>



<a name="247713858"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713858" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713858">(Jul 30 2021 at 14:17)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247713627">said</a>:</p>
<blockquote>
<p>but also because it seemed like <span class="user-mention silent" data-user-id="116113">lqd</span>'s experiments suggested that we could get a lot of the optimization we want from relatively simple filtering tests</p>
</blockquote>
<p>those were indeed related to the hybrid variant</p>



<a name="247713909"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713909" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713909">(Jul 30 2021 at 14:17)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> yesterday it seemed there was also overwhelming demand for some more information, rationale, etc about the optimized variant</p>



<a name="247713920"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713920" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713920">(Jul 30 2021 at 14:17)</a>:</h4>
<p>the people need to know !</p>



<a name="247713943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713943">(Jul 30 2021 at 14:17)</a>:</h4>
<p>I'm still of the mind we should remove it rather than explain it :P</p>



<a name="247713970"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247713970" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247713970">(Jul 30 2021 at 14:18)</a>:</h4>
<p>but I can spend some time answering questions if desired</p>



<a name="247714012"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714012" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714012">(Jul 30 2021 at 14:18)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> That was assuming that modifications would have to update the optimized variant as well</p>



<a name="247714024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714024">(Jul 30 2021 at 14:18)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247713920">said</a>:</p>
<blockquote>
<p>the people need to know !</p>
</blockquote>
<p>Well, only if it continues to exist probably</p>



<a name="247714054"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714054" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714054">(Jul 30 2021 at 14:18)</a>:</h4>
<p>we cannot remove it don't worry :p</p>



<a name="247714084"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714084" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714084">(Jul 30 2021 at 14:18)</a>:</h4>
<p>or I guess it depends on what we're trying to do with this</p>



<a name="247714104"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714104" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714104">(Jul 30 2021 at 14:19)</a>:</h4>
<p>if for example we don't use datalog for production</p>



<a name="247714176"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714176" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714176">(Jul 30 2021 at 14:19)</a>:</h4>
<p>if speed is not a concern for some of the use cases then we can remove it if you want, as long as we don't lose its insights, ideas, etc</p>



<a name="247714286"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714286" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714286">(Jul 30 2021 at 14:20)</a>:</h4>
<p>My gut reaction is that it would be easier to iron out all the correctness bugs on top of the naive variant, then reimplement the ideas from the optimized variant</p>



<a name="247714294"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714294" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714294">(Jul 30 2021 at 14:20)</a>:</h4>
<p>for correctness purposes, the Naive one was not unbearably slow in the rustc UI tests</p>



<a name="247714322"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714322" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714322">(Jul 30 2021 at 14:20)</a>:</h4>
<p>I guess the question is</p>



<a name="247714328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714328">(Jul 30 2021 at 14:20)</a>:</h4>
<p>Instead of having to keep them in sync, which slows things down.</p>



<a name="247714345"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714345" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714345">(Jul 30 2021 at 14:20)</a>:</h4>
<p>can we add some simple filtering that makes it "good enough" to run the rustc tests</p>



<a name="247714378"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714378" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714378">(Jul 30 2021 at 14:21)</a>:</h4>
<p>what's killing use in rustc tests is the move analysis, and the locations::all hack</p>



<a name="247714415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714415">(Jul 30 2021 at 14:21)</a>:</h4>
<p>ok so I'm looking over the <a href="https://hackmd.io/c6ooQFV-QJilsmEE15FsKQ?view">notes from the previous sprint</a></p>



<a name="247714423"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714423" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714423">(Jul 30 2021 at 14:21)</a>:</h4>
<p>otherwise it's good enough, not great compared to the hybrid analysis, but good enough</p>



<a name="247714432"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714432" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714432">(Jul 30 2021 at 14:21)</a>:</h4>
<p>I think those goals still seem... you know ... not bad</p>



<a name="247714553"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714553" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714553">(Jul 30 2021 at 14:22)</a>:</h4>
<p>yeah</p>



<a name="247714567"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714567" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714567">(Jul 30 2021 at 14:22)</a>:</h4>
<p>those are still relevant</p>



<a name="247714587"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714587" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714587">(Jul 30 2021 at 14:22)</a>:</h4>
<p>let's do this</p>



<a name="247714598"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714598" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714598">(Jul 30 2021 at 14:22)</a>:</h4>
<p>let's try to make a high-level roadmap for the next 10 minutes</p>



<a name="247714627"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714627" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714627">(Jul 30 2021 at 14:23)</a>:</h4>
<p>in <a href="https://hackmd.io/1t4CR635QKKFTRN-2qexsg?edit">the sprint doc</a> for now</p>



<a name="247714641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714641">(Jul 30 2021 at 14:23)</a>:</h4>
<p>I want to validate some assumptions</p>



<a name="247714773"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714773" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714773">(Jul 30 2021 at 14:24)</a>:</h4>
<p>so I wrote out a first milestone, "feature complete"</p>



<a name="247714950"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714950" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714950">(Jul 30 2021 at 14:25)</a>:</h4>
<p>(PS, elsewhere I adopted the name "lease" instead of "origin" and I kind of like it :)</p>



<a name="247714984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247714984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247714984">(Jul 30 2021 at 14:26)</a>:</h4>
<p>I saw that :3</p>



<a name="247715047"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715047" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715047">(Jul 30 2021 at 14:26)</a>:</h4>
<p>so-- did we do the Great Renaming ?</p>



<a name="247715062"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715062" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715062">(Jul 30 2021 at 14:26)</a>:</h4>
<p>yeah</p>



<a name="247715071"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715071" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715071">(Jul 30 2021 at 14:26)</a>:</h4>
<p>apart from maybe one or 2 small cases</p>



<a name="247715083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715083">(Jul 30 2021 at 14:26)</a>:</h4>
<p>the big question mark is "higher-ranked" stuff</p>



<a name="247715087"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715087" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715087">(Jul 30 2021 at 14:26)</a>:</h4>
<p>The Greater Renaming?</p>



<a name="247715107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715107">(Jul 30 2021 at 14:26)</a>:</h4>
<p>in terms of that first milestone</p>



<a name="247715109"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715109" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715109">(Jul 30 2021 at 14:26)</a>:</h4>
<p>that I forgot but mentioned in the subset errors PR (IIRC)</p>



<a name="247715171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715171">(Jul 30 2021 at 14:27)</a>:</h4>
<p>I'm still of the opinion that figuring out higher-ranked errors is not polonius's job</p>



<a name="247715172"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715172" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715172">(Jul 30 2021 at 14:27)</a>:</h4>
<p>everything's pretty much renamed, and there's a rust branch linked in the doc that matches the new relations</p>



<a name="247715217"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715217" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715217">(Jul 30 2021 at 14:27)</a>:</h4>
<p>but that's going to make it hard to meet the milestone until it gets resolved</p>



<a name="247715308"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715308" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715308">(Jul 30 2021 at 14:28)</a>:</h4>
<p>we definitely need chalk for this, right ? as mentioned in the leak check MCP paragraph ?</p>



<a name="247715355"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715355" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715355">(Jul 30 2021 at 14:28)</a>:</h4>
<p>that's my preferred approach still</p>



<a name="247715371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715371">(Jul 30 2021 at 14:28)</a>:</h4>
<p>but I do wonder if, in the fullness of time,</p>



<a name="247715384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715384">(Jul 30 2021 at 14:28)</a>:</h4>
<p>the problem is that we try to "carve up" the solving</p>



<a name="247715402"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715402" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715402">(Jul 30 2021 at 14:29)</a>:</h4>
<p>and it'd be better to kind of merge polonius rules with chalk rules into one big logic party</p>



<a name="247715403"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715403" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715403">(Jul 30 2021 at 14:29)</a>:</h4>
<p>needing complete chalk integration in rustc to achieve the first milestone is going to take a while</p>



<a name="247715415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715415">(Jul 30 2021 at 14:29)</a>:</h4>
<p>yeah</p>



<a name="247715422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715422">(Jul 30 2021 at 14:29)</a>:</h4>
<p>I'm thinking about what kind of hack we can do in the interim</p>



<a name="247715429"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715429" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715429">(Jul 30 2021 at 14:29)</a>:</h4>
<p>the compiler is pretty dumb about higher-ranked errors</p>



<a name="247715450"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715450" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715450">(Jul 30 2021 at 14:29)</a>:</h4>
<p>we might be able to hack up something equally dumb to get us by</p>



<a name="247715500"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715500" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715500">(Jul 30 2021 at 14:30)</a>:</h4>
<p>s/dumb/simplistic/</p>



<a name="247715577"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715577" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715577">(Jul 30 2021 at 14:30)</a>:</h4>
<p>e.g. the approach that <span class="user-mention" data-user-id="118594">@Dylan MacKenzie (ecstatic-morse)</span> was describing might work</p>



<a name="247715604"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715604" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715604">(Jul 30 2021 at 14:30)</a>:</h4>
<p>I don't think the compiler is really any smarter than that</p>



<a name="247715651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715651">(Jul 30 2021 at 14:30)</a>:</h4>
<p>Trying to follow - would that be the idea of translating higher-ranked bounds to something simpler, and then give that to polonius, or something else that's more on the compiler side?</p>



<a name="247715666"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715666" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715666">(Jul 30 2021 at 14:31)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247715577">said</a>:</p>
<blockquote>
<p>e.g. the approach that <span class="user-mention silent" data-user-id="118594">Dylan MacKenzie (ecstatic-morse)</span> was describing might work</p>
</blockquote>
<p>(to be clear, no offense meant on this approach :)</p>



<a name="247715707"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715707" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715707">(Jul 30 2021 at 14:31)</a>:</h4>
<p>but ultimately we may need to merge into a "big logic party" ? I guess we'lls ee what john harrison ends up suggesting ?</p>



<a name="247715715"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715715" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715715">(Jul 30 2021 at 14:31)</a>:</h4>
<p><span class="user-mention silent" data-user-id="337115">Domenic Quirl</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247715651">said</a>:</p>
<blockquote>
<p>Trying to follow - would that be the idea of translating higher-ranked bounds to something simpler, and then give that to polonius, or something else that's more on the compiler side?</p>
</blockquote>
<p>my preference would be to translate on the compiler side</p>



<a name="247715731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715731">(Jul 30 2021 at 14:31)</a>:</h4>
<p>No worries <span aria-label="smile" class="emoji emoji-1f642" role="img" title="smile">:smile:</span> You'll have to try pretty hard to offend me</p>



<a name="247715739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715739">(Jul 30 2021 at 14:31)</a>:</h4>
<p>so that polonius is just getting stuff at the "root level" or whatever</p>



<a name="247715773"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715773" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715773">(Jul 30 2021 at 14:31)</a>:</h4>
<p>because that is what I think chalk would do</p>



<a name="247715831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715831">(Jul 30 2021 at 14:32)</a>:</h4>
<p>however, that code might live in polonius if we wanted</p>



<a name="247715841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715841">(Jul 30 2021 at 14:32)</a>:</h4>
<p>e.g. the compiler might give stuff with universes</p>



<a name="247715857"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715857" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715857">(Jul 30 2021 at 14:32)</a>:</h4>
<p>and we do a light translation step where we "lift up" outlives</p>



<a name="247715876"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715876" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715876">(Jul 30 2021 at 14:32)</a>:</h4>
<p>so that if you have <code>for&lt;'a&gt; X: 'a</code>, we translate it to <code>X: 'static</code></p>



<a name="247715890"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715890" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715890">(Jul 30 2021 at 14:32)</a>:</h4>
<p>which I think is basically the upshot of your blog post, <span class="user-mention" data-user-id="118594">@Dylan MacKenzie (ecstatic-morse)</span> ?</p>



<a name="247715913"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715913" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715913">(Jul 30 2021 at 14:32)</a>:</h4>
<p>does this only matter during trait selection ?</p>



<a name="247715914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715914">(Jul 30 2021 at 14:32)</a>:</h4>
<p>this is also kind of what the compiler does today, iirc...</p>



<a name="247715942"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715942" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715942">(Jul 30 2021 at 14:33)</a>:</h4>
<p>...I think this seems right. We should try to do something like that in polonius to get us by</p>



<a name="247715977"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715977" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715977">(Jul 30 2021 at 14:33)</a>:</h4>
<p>Correct, yeah you don't need another solver.</p>



<a name="247715988"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247715988" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247715988">(Jul 30 2021 at 14:33)</a>:</h4>
<p><span class="user-mention" data-user-id="116109">@Vytautas Astrauskas [he/him]</span> one thing I am wondering, do you have needs/desires/opinions that come from Prusti?</p>



<a name="247716067"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716067" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716067">(Jul 30 2021 at 14:34)</a>:</h4>
<p><span class="user-mention" data-user-id="118594">@Dylan MacKenzie (ecstatic-morse)</span> can you link to your blog post?</p>



<a name="247716075"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716075" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716075">(Jul 30 2021 at 14:34)</a>:</h4>
<p>iirc, it was a nice explanation, worth storing in the notes</p>



<a name="247716078"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716078" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716078">(Jul 30 2021 at 14:34)</a>:</h4>
<p>For the simple cases at least</p>



<a name="247716084"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716084" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716084">(Jul 30 2021 at 14:34)</a>:</h4>
<p>right</p>



<a name="247716125"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716125" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716125">(Jul 30 2021 at 14:34)</a>:</h4>
<p>so, in terms of the milestone, <span class="user-mention" data-user-id="116113">@lqd</span>, let's turn those into checkboxes</p>



<a name="247716129"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716129" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716129">(Jul 30 2021 at 14:34)</a>:</h4>
<p>and what would we need to do in polonius ? is it only about illegal subset relationship errors ? we wouldn't be borrowcking completely, right ?</p>



<a name="247716132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716132">(Jul 30 2021 at 14:34)</a>:</h4>
<p>to see what we have and don't have</p>



<a name="247716140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716140">(Jul 30 2021 at 14:34)</a>:</h4>
<p>Among the things from yesterday I read <a href="https://gist.github.com/nikomatsakis/8bfda6c1119727e13ec6e98f33d2b696#complication-no-best-simplification">https://gist.github.com/nikomatsakis/8bfda6c1119727e13ec6e98f33d2b696#complication-no-best-simplification</a>, which seems to suggest there are constellations that are more difficult?</p>



<a name="247716148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716148">(Jul 30 2021 at 14:34)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247716129">said</a>:</p>
<blockquote>
<p>and what would we need to do in polonius ? is it only about illegal subset relationship errors ? we wouldn't be borrowcking completely, right ?</p>
</blockquote>
<p>tcorrec</p>



<a name="247716166"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716166" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716166">(Jul 30 2021 at 14:35)</a>:</h4>
<p><a href="https://ecstaticmorse.net/posts/quantifier-elimination/">https://ecstaticmorse.net/posts/quantifier-elimination/</a> is my blog post on HRTBs</p>



<a name="247716171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716171">(Jul 30 2021 at 14:35)</a>:</h4>
<p><span class="user-mention silent" data-user-id="337115">Domenic Quirl</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247716140">said</a>:</p>
<blockquote>
<p>Among the things from yesterday I read <a href="https://gist.github.com/nikomatsakis/8bfda6c1119727e13ec6e98f33d2b696#complication-no-best-simplification">https://gist.github.com/nikomatsakis/8bfda6c1119727e13ec6e98f33d2b696#complication-no-best-simplification</a>, which seems to suggest there are constellations that are more difficult?</p>
</blockquote>
<p>that's right-- it's just that the compiler doesn't do a good job today</p>



<a name="247716189"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716189" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716189">(Jul 30 2021 at 14:35)</a>:</h4>
<p>so to match its behavior is I think not that hard</p>



<a name="247716198"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716198" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716198">(Jul 30 2021 at 14:35)</a>:</h4>
<p>some of that gist is more me thinking ahead to the behavior I want</p>



<a name="247716214"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716214" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716214">(Jul 30 2021 at 14:35)</a>:</h4>
<p>(although lately I've had some alternative ideas for other ways we might solve things)</p>



<a name="247716225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716225">(Jul 30 2021 at 14:35)</a>:</h4>
<p>(which are still sort of half-formed)</p>



<a name="247716245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vytautas Astrauskas [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716245">(Jul 30 2021 at 14:35)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247715988">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="116109">Vytautas Astrauskas [he/him]</span> one thing I am wondering, do you have needs/desires/opinions that come from Prusti?</p>
</blockquote>
<p>We need to know <code>outlives</code> relationship between regions.</p>



<a name="247716252"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716252" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716252">(Jul 30 2021 at 14:36)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247716198">said</a>:</p>
<blockquote>
<p>some of that gist is more me thinking ahead to the behavior I want</p>
</blockquote>
<p>I'm very interested in this btw</p>



<a name="247716329"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716329" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716329">(Jul 30 2021 at 14:36)</a>:</h4>
<p><span class="user-mention" data-user-id="116109">@Vytautas Astrauskas [he/him]</span> get with the modern terminology :P</p>



<a name="247716375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716375">(Jul 30 2021 at 14:36)</a>:</h4>
<p>although it's probably further down the line</p>



<a name="247716459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716459">(Jul 30 2021 at 14:37)</a>:</h4>
<p>I'm reading more of the notes</p>



<a name="247716510"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716510" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716510">(Jul 30 2021 at 14:38)</a>:</h4>
<blockquote>
<ul>
<li>
<p>model: reachability/odisseus. loans are not fundamental IMO, loans and issuing/introducing origins are bijective,<br>
          origins are not really sets of loans (as we saw with the equality variant) (already in progress)</p>
</li>
<li>
<p>model: SSA -&gt; arielb's, dylan's explorations</p>
</li>
<li>model explorations: equality (tease out the interesting things buried among things that didn't work out in the <br>
   equality variant, esp to fix the current "polonius imprecision")</li>
</ul>
</blockquote>
<p>this sounds interesting! I feel kind of out of date</p>



<a name="247716537"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716537" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716537">(Jul 30 2021 at 14:38)</a>:</h4>
<p>sounds like the action item for this particular sprint here, though, is more like "collect links and read up"?</p>



<a name="247716601"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716601" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716601">(Jul 30 2021 at 14:39)</a>:</h4>
<p>I'm not sure we have a lot of links about those though</p>



<a name="247716639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716639">(Jul 30 2021 at 14:39)</a>:</h4>
<p>I feel at the last sprint we ended up with a reasonable set of rules</p>



<a name="247716732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716732">(Jul 30 2021 at 14:40)</a>:</h4>
<p><span class="user-mention" data-user-id="118594">@Dylan MacKenzie (ecstatic-morse)</span> do you want to investigate the HR error stuff?</p>



<a name="247716745"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716745" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716745">(Jul 30 2021 at 14:40)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247716639">said</a>:</p>
<blockquote>
<p>I feel at the last sprint we ended up with a reasonable set of rules</p>
</blockquote>
<p>I also feel that way</p>



<a name="247716752"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716752" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716752">(Jul 30 2021 at 14:40)</a>:</h4>
<p>I'm not sure if they're all implemented or not?</p>



<a name="247716795"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716795" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716795">(Jul 30 2021 at 14:41)</a>:</h4>
<p>they are for 2 out of the 3 error kinds we want to emit</p>



<a name="247716806"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716806" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716806">(Jul 30 2021 at 14:41)</a>:</h4>
<p>modulo: 2 WIP PRs</p>



<a name="247716822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716822">(Jul 30 2021 at 14:41)</a>:</h4>
<p>links to those PRs?</p>



<a name="247716832"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716832" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716832">(Jul 30 2021 at 14:41)</a>:</h4>
<p>(are they on polonius repo?)</p>



<a name="247716833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716833">(Jul 30 2021 at 14:41)</a>:</h4>
<p>but the 3rd kind is move errors, and those already work</p>



<a name="247716844"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716844" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716844">(Jul 30 2021 at 14:41)</a>:</h4>
<ul>
<li>Removing <code>Location::All</code>.<ul>
<li>I haven't looked into this more than superficially. Once again, it seems like we already know the correct approach (see <a href="https://github.com/rust-lang/rust/issues/50938">#50938</a>), but we need to think through its consequences and make sure they're acceptable.</li>
</ul>
</li>
</ul>



<a name="247716870"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716870" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716870">(Jul 30 2021 at 14:41)</a>:</h4>
<p>1) moving away from placeholder loans and computing subset errors everywhere <a href="https://github.com/rust-lang/polonius/pull/156">https://github.com/rust-lang/polonius/pull/156</a></p>



<a name="247716877"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716877" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716877">(Jul 30 2021 at 14:41)</a>:</h4>
<p>so I see discusison of souffle</p>



<a name="247716925"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716925" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716925">(Jul 30 2021 at 14:42)</a>:</h4>
<p>(sorry, there's a lot of notes!)</p>



<a name="247716936"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716936" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716936">(Jul 30 2021 at 14:42)</a>:</h4>
<p>I'd be <em>ok</em> with integrating it, but (a) linking to C++ is I think a non-starter for rustc integration</p>



<a name="247716949"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716949" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716949">(Jul 30 2021 at 14:42)</a>:</h4>
<p>(b) I didn't find it to perform particularly well, but that's probably because I didn't tune it very much :)</p>



<a name="247716960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716960">(Jul 30 2021 at 14:42)</a>:</h4>
<p>2) disjunctive queries to better match the rules: liveness of placeholders <a href="https://github.com/rust-lang/polonius/pull/157">https://github.com/rust-lang/polonius/pull/157</a></p>



<a name="247716969"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716969" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716969">(Jul 30 2021 at 14:42)</a>:</h4>
<p>I do agree that datafrog is not the most user friendly of things</p>



<a name="247716989"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247716989" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247716989">(Jul 30 2021 at 14:42)</a>:</h4>
<p>early on we tried some bespoke data structures and things and basically datafrog smoked them all</p>



<a name="247717029"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717029" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717029">(Jul 30 2021 at 14:43)</a>:</h4>
<p>but I have no objections in the long term :)</p>



<a name="247717054"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717054" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717054">(Jul 30 2021 at 14:43)</a>:</h4>
<p>no objections even to moving away from datalog ? :3</p>



<a name="247717055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717055">(Jul 30 2021 at 14:43)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247716732">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="118594">Dylan MacKenzie (ecstatic-morse)</span> do you want to investigate the HR error stuff?</p>
</blockquote>
<p>Yes! A tiny bit of mentoring at the start would be greatly appreciated though. Is there a good subset of <code>rustc</code> tests or is it just anything with an HRTB?</p>
<p>(we can talk at the end once the roadmap is done)</p>



<a name="247717067"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717067" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717067">(Jul 30 2021 at 14:43)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247716833">said</a>:</p>
<blockquote>
<p>but the 3rd kind is move errors, and those already work</p>
</blockquote>
<p>Didn't they have a soundness bug? I can't remember anymore but I remember something going wrong with some of the code I worked on, so either moves or initialisation.</p>



<a name="247717153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717153">(Jul 30 2021 at 14:44)</a>:</h4>
<p>Task lists:</p>



<a name="247717159"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717159" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717159">(Jul 30 2021 at 14:44)</a>:</h4>
<ul>
<li>[ ] Review <a href="https://github.com/rust-lang/polonius/pull/156">https://github.com/rust-lang/polonius/pull/156</a> -- nikomatsakis</li>
<li>[ ] Review <a href="https://github.com/rust-lang/polonius/pull/157">https://github.com/rust-lang/polonius/pull/157</a> -- nikomatsakis</li>
<li>[ ] Work with Dylan Stiles to get a plan around HRTB -- nikomatsakis</li>
<li>[ ] Refactor parser to not use lalrpop -- domenicquirl</li>
</ul>



<a name="247717165"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717165" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717165">(Jul 30 2021 at 14:44)</a>:</h4>
<p>seems like we're missing some stuff for other folks ;)</p>



<a name="247717171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717171">(Jul 30 2021 at 14:44)</a>:</h4>
<p><span class="user-mention" data-user-id="204115">@Amanda Stjerna</span> soundness I couldn't tell, but there were some issues and incompleteness sure. By "work" I meant the move errors in rustc</p>



<a name="247717184"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717184" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717184">(Jul 30 2021 at 14:44)</a>:</h4>
<p>er, Dylan Stiles--oops :)</p>



<a name="247717187"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717187" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717187">(Jul 30 2021 at 14:44)</a>:</h4>
<p>that's an old friend of mine</p>



<a name="247717190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717190">(Jul 30 2021 at 14:44)</a>:</h4>
<p>:D</p>



<a name="247717214"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717214" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717214">(Jul 30 2021 at 14:44)</a>:</h4>
<p>apparently my brain "autocompletes" Dylan that way :)</p>



<a name="247717216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717216">(Jul 30 2021 at 14:44)</a>:</h4>
<p>we're all friends here</p>



<a name="247717230"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717230" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717230">(Jul 30 2021 at 14:45)</a>:</h4>
<p>Ah, so essentially translating Polonius errors to rustc? That should be finished</p>



<a name="247717232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717232">(Jul 30 2021 at 14:45)</a>:</h4>
<p>My attempt to join the real name gang has failed spectacularly</p>



<a name="247717370"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717370" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717370">(Jul 30 2021 at 14:46)</a>:</h4>
<p>yeah so there are two parts, right? there's </p>
<ul>
<li>polonius computes correct errors</li>
</ul>
<p>and </p>
<ul>
<li>polonius reports errors to rustc, which reports them</li>
</ul>



<a name="247717371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717371">(Jul 30 2021 at 14:46)</a>:</h4>
<p><span class="user-mention silent" data-user-id="204115">Amanda Stjerna</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247717230">said</a>:</p>
<blockquote>
<p>Ah, so essentially translating Polonius errors to rustc? That should be done</p>
</blockquote>
<p><span class="user-mention" data-user-id="204115">@Amanda Stjerna</span> I meant rustc already reports move errors before borrowcking, so we're not blocked on polonius computing them and emitting them correctly</p>



<a name="247717394"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717394" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717394">(Jul 30 2021 at 14:46)</a>:</h4>
<p>Aha ok I see</p>



<a name="247717402"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717402" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717402">(Jul 30 2021 at 14:46)</a>:</h4>
<p>it sounded like <span class="user-mention" data-user-id="116113">@lqd</span> there was some work updating rustc to match polonius?</p>



<a name="247717410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717410">(Jul 30 2021 at 14:46)</a>:</h4>
<p>yes</p>



<a name="247717412"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717412" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717412">(Jul 30 2021 at 14:46)</a>:</h4>
<p>I was also intrigued by this discussion of debuggability etc</p>



<a name="247717451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717451">(Jul 30 2021 at 14:47)</a>:</h4>
<p>if someone needs to use rustc master with polonius master -&gt; <a href="https://github.com/lqd/rust/tree/polonius-master">https://github.com/lqd/rust/tree/polonius-master</a></p>



<a name="247717489"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717489" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717489">(Jul 30 2021 at 14:47)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247717451">said</a>:</p>
<blockquote>
<p>if someone needs to use rustc master with polonius master -&gt; <a href="https://github.com/lqd/rust/tree/polonius-master">https://github.com/lqd/rust/tree/polonius-master</a></p>
</blockquote>
<p>is there a pending PR for that?</p>



<a name="247717492"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717492" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717492">(Jul 30 2021 at 14:47)</a>:</h4>
<p>otherwise the fact generation doesn't match anymore, the relation have changed names</p>



<a name="247717498"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717498" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717498">(Jul 30 2021 at 14:47)</a>:</h4>
<p>not yet, here's why</p>



<a name="247717536"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717536" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717536">(Jul 30 2021 at 14:47)</a>:</h4>
<p>1) I'd like to land at least the subsets PR first</p>



<a name="247717615"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717615" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717615">(Jul 30 2021 at 14:48)</a>:</h4>
<p>2) I'm not in love with how I did disjunctive queries in the other PR (super verbose, and it's not done until we've all talked about it)</p>



<a name="247717636"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717636" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717636">(Jul 30 2021 at 14:48)</a>:</h4>
<p>then publish another version and update rustc</p>



<a name="247717674"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717674" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717674">(Jul 30 2021 at 14:48)</a>:</h4>
<p>got it, ok</p>



<a name="247717795"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717795" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717795">(Jul 30 2021 at 14:49)</a>:</h4>
<p>so should we add "talk about X" to the list?</p>



<a name="247717802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717802">(Jul 30 2021 at 14:50)</a>:</h4>
<p>but I can open a PR whenever anyone needs it</p>



<a name="247717861"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717861" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717861">(Jul 30 2021 at 14:50)</a>:</h4>
<p>sure !</p>



<a name="247717900"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717900" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717900">(Jul 30 2021 at 14:50)</a>:</h4>
<p>I guess put things in <a href="https://hackmd.io/1t4CR635QKKFTRN-2qexsg?edit">https://hackmd.io/1t4CR635QKKFTRN-2qexsg?edit</a> with your name on them :)</p>



<a name="247717929"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717929" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717929">(Jul 30 2021 at 14:50)</a>:</h4>
<p>who else needs tasks? <span class="user-mention" data-user-id="204115">@Amanda Stjerna</span> ... ?</p>



<a name="247717949"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717949" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717949">(Jul 30 2021 at 14:51)</a>:</h4>
<p>Yes! I honestly have no idea where to start</p>



<a name="247717965"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717965" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717965">(Jul 30 2021 at 14:51)</a>:</h4>
<p>I'm trying to remember what I was doing with <code>Locations::All</code></p>



<a name="247717968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247717968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247717968">(Jul 30 2021 at 14:51)</a>:</h4>
<p>and failing :)</p>



<a name="247718000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247718000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247718000">(Jul 30 2021 at 14:51)</a>:</h4>
<p>you had a WIP branch about that at the last sprint, right ?</p>



<a name="247718012"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247718012" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247718012">(Jul 30 2021 at 14:51)</a>:</h4>
<p>I did</p>



<a name="247718018"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247718018" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247718018">(Jul 30 2021 at 14:51)</a>:</h4>
<p>I mean Is ort of remember</p>



<a name="247718025"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247718025" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247718025">(Jul 30 2021 at 14:51)</a>:</h4>
<p>based on the earlier branch</p>



<a name="247718027"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247718027" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247718027">(Jul 30 2021 at 14:51)</a>:</h4>
<p>I was basically finding locations for everything, I think...</p>



<a name="247718040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247718040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247718040">(Jul 30 2021 at 14:51)</a>:</h4>
<p>I'd have to find that branch</p>



<a name="247718042"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247718042" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247718042">(Jul 30 2021 at 14:52)</a>:</h4>
<p>some were tricky</p>



<a name="247718088"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247718088" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247718088">(Jul 30 2021 at 14:52)</a>:</h4>
<blockquote>
<ul>
<li>
<p>move/init analysis !:</p>
<ul>
<li>debugging move/init analysis (possibly beginner friendly) !</li>
<li>completing move/init analysis, partial moves and the likes !</li>
<li>make move errors early return in <code>compute</code> (beginner friendly)</li>
<li>understanding the current limitations of move/init analysis, making rustc tests pass with it, validating it</li>
<li>
<p>maybe bypass move/init + liveness ? going directly to loan analysis (possibly resurrecting some of the initial fact<br>
   generation code) (possibly beginner friendly)</p>
</li>
<li>
<p>add move/init facts to test parser (beginner friendly ?)<br>
 ```</p>
</li>
</ul>
</li>
</ul>
</blockquote>



<a name="247718174"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247718174" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247718174">(Jul 30 2021 at 14:52)</a>:</h4>
<p>how do we debug the move/init analysis? :)</p>



<a name="247718201"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247718201" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247718201">(Jul 30 2021 at 14:53)</a>:</h4>
<p>and... what need completion?</p>



<a name="247718213"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247718213" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247718213">(Jul 30 2021 at 14:53)</a>:</h4>
<p>maybe that's a good place for <span class="user-mention" data-user-id="204115">@Amanda Stjerna</span> ?</p>



<a name="247720853"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247720853" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247720853">(Jul 30 2021 at 15:12)</a>:</h4>
<h1>Check: does everybody have a task?</h1>



<a name="247721075"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247721075" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247721075">(Jul 30 2021 at 15:12)</a>:</h4>
<p>I propose that we go off and do things and check back in in ~30 minutes or somethign</p>



<a name="247721091"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247721091" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247721091">(Jul 30 2021 at 15:12)</a>:</h4>
<p>I'm going to review your PRs, <span class="user-mention" data-user-id="116113">@lqd</span></p>



<a name="247721124"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247721124" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247721124">(Jul 30 2021 at 15:12)</a>:</h4>
<p>awesome thanks a bunch :)</p>



<a name="247723267"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247723267" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247723267">(Jul 30 2021 at 15:29)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> btw don't bother much with the WIP PR about placeholder liveness, it's mostly for discussion (because there's probably a need to explicitly add antijoins here and there, which were implicit before) whether the approach was OK with y'all (I'd surely prefer if we added some datafrog helpers rather than me inlining all expressions like I did).</p>
<p>the one about illegal subset relationships errors is more worthy of your time</p>



<a name="247723560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247723560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247723560">(Jul 30 2021 at 15:31)</a>:</h4>
<p>that's the one I'm reading now</p>



<a name="247726287"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247726287" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247726287">(Jul 30 2021 at 15:53)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20Hackathon.202021-07-30/near/247721075">said</a>:</p>
<blockquote>
<p>I propose that we go off and do things and check back in in ~30 minutes or somethign</p>
</blockquote>
<p>Hey folks -- how's it going :)</p>



<a name="247726315"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247726315" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247726315">(Jul 30 2021 at 15:53)</a>:</h4>
<p>My report: I read <a href="https://github.com/rust-lang/polonius/pull/156">https://github.com/rust-lang/polonius/pull/156</a> and plan to r+ :)</p>



<a name="247726951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247726951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247726951">(Jul 30 2021 at 15:58)</a>:</h4>
<p>Got caught off guard by 2015 edition, but lexer should be mostly done regardless <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="247726974"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247726974" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247726974">(Jul 30 2021 at 15:58)</a>:</h4>
<p>I'm stealing some stuff from <span class="user-mention" data-user-id="116109">@Vytautas Astrauskas [he/him]</span> to get off the ground with the visualisation tool, but had to take a break to entertain the puppy</p>



<a name="247726996"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247726996" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247726996">(Jul 30 2021 at 15:58)</a>:</h4>
<p>Is it fine if the parser moves to 2018, or is it 2015 for a specific reason?</p>



<a name="247727017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247727017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247727017">(Jul 30 2021 at 15:58)</a>:</h4>
<p>it's fine</p>



<a name="247727091"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247727091" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247727091">(Jul 30 2021 at 15:59)</a>:</h4>
<p>2018 is better :)</p>



<a name="247727108"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247727108" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247727108">(Jul 30 2021 at 15:59)</a>:</h4>
<p>let's go directly to 2021 <span aria-label="clown" class="emoji emoji-1f921" role="img" title="clown">:clown:</span></p>



<a name="247727291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247727291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247727291">(Jul 30 2021 at 16:00)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> you would say that we should for sure remove the <code>Locations::All</code>hack rather than the <code>outlives_everywhere</code>dedicated relation that I had, right ? (to avoid the OOMs in rustc fact generation, and avoiding 95% of the outlives facts in clap)</p>



<a name="247727382"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247727382" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247727382">(Jul 30 2021 at 16:01)</a>:</h4>
<p>I would say that</p>



<a name="247727391"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247727391" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247727391">(Jul 30 2021 at 16:01)</a>:</h4>
<p>if we can :)</p>



<a name="247727416"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247727416" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247727416">(Jul 30 2021 at 16:01)</a>:</h4>
<p>for one thing, that extra relation made the code more complex</p>



<a name="247727578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247727578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247727578">(Jul 30 2021 at 16:02)</a>:</h4>
<p>for sure</p>



<a name="247727597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247727597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247727597">(Jul 30 2021 at 16:02)</a>:</h4>
<p>especially in the opt variant</p>



<a name="247727643"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247727643" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247727643">(Jul 30 2021 at 16:03)</a>:</h4>
<p>(and I feel it's a bit risky to change these rules this way)</p>



<a name="247727808"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247727808" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247727808">(Jul 30 2021 at 16:04)</a>:</h4>
<p>I'm trying to decide what to do next</p>



<a name="247727815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247727815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247727815">(Jul 30 2021 at 16:04)</a>:</h4>
<p>I can read your other PR</p>



<a name="247727825"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247727825" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247727825">(Jul 30 2021 at 16:04)</a>:</h4>
<p>That's probably a good start</p>



<a name="247727849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247727849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247727849">(Jul 30 2021 at 16:04)</a>:</h4>
<p>I was also going to invest a bit of time in documenting our plans</p>



<a name="247728059"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247728059" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247728059">(Jul 30 2021 at 16:06)</a>:</h4>
<p>I'm not sure it's important to read the other PR now tbh</p>



<a name="247728087"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247728087" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247728087">(Jul 30 2021 at 16:06)</a>:</h4>
<p>It sounded like you wanted to talk about some aspect of it?</p>



<a name="247728102"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247728102" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247728102">(Jul 30 2021 at 16:07)</a>:</h4>
<p>in general yeah</p>



<a name="247728131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247728131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247728131">(Jul 30 2021 at 16:07)</a>:</h4>
<p>we don't have to do that <em>now</em>, but if there's nothing more interesting to you in the list, sure we can do that :)</p>



<a name="247728146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247728146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247728146">(Jul 30 2021 at 16:07)</a>:</h4>
<p>let me give it a quick eye</p>



<a name="247728276"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247728276" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247728276">(Jul 30 2021 at 16:08)</a>:</h4>
<p>maybe rebase it after landing <a href="https://github.com/rust-lang-nursery/polonius/issues/156">polonius#156</a>?</p>



<a name="247728390"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247728390" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247728390">(Jul 30 2021 at 16:09)</a>:</h4>
<p>sure</p>



<a name="247728452"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247728452" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247728452">(Jul 30 2021 at 16:10)</a>:</h4>
<p>would you want to read it after I rebased ? (I'm not sure whether it conflicts with 156)</p>



<a name="247728501"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247728501" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247728501">(Jul 30 2021 at 16:10)</a>:</h4>
<p>I'm skimming it now, doesn't matter</p>



<a name="247740210"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247740210" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247740210">(Jul 30 2021 at 17:46)</a>:</h4>
<p>I'm going to have to leave soon but this was great!</p>



<a name="247740226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247740226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247740226">(Jul 30 2021 at 17:46)</a>:</h4>
<p>We should record our wins</p>



<a name="247740234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247740234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247740234">(Jul 30 2021 at 17:46)</a>:</h4>
<h1>Wins!</h1>



<a name="247740248"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247740248" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247740248">(Jul 30 2021 at 17:46)</a>:</h4>
<ul>
<li>Reviewed <a href="https://github.com/rust-lang-nursery/polonius/issues/156">polonius#156</a> and r+'d</li>
</ul>



<a name="247740282"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247740282" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247740282">(Jul 30 2021 at 17:47)</a>:</h4>
<ul>
<li>DIscussed higher-ranked errors with <span class="user-mention" data-user-id="118594">@Dylan MacKenzie (ecstatic-morse)</span> and figured out how to extend polonius to match existing borrow checker behavior</li>
</ul>



<a name="247740314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247740314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247740314">(Jul 30 2021 at 17:47)</a>:</h4>
<ul>
<li>Talked briefly about <a href="https://github.com/rust-lang-nursery/polonius/issues/157">polonius#157</a> but didn't reach conclusions :)</li>
</ul>



<a name="247740332"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247740332" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247740332">(Jul 30 2021 at 17:47)</a>:</h4>
<ul>
<li>Re-established context around long term plans</li>
</ul>



<a name="247740395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247740395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247740395">(Jul 30 2021 at 17:48)</a>:</h4>
<ul>
<li>Scheduled <time datetime="2021-08-27T14:00:00Z">2021-08-27T16:00:00+02:00</time> as follow-up :)</li>
</ul>



<a name="247740451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247740451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247740451">(Jul 30 2021 at 17:48)</a>:</h4>
<p>The rest of y'all should log things as appropriate, then maybe <span class="user-mention" data-user-id="116113">@lqd</span> we can do a Inside Rust blog post?</p>



<a name="247740472"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247740472" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247740472">(Jul 30 2021 at 17:48)</a>:</h4>
<p>since we're about to hit the expected end time for this little sprint: thanks a lot for your time and participation everyone, <span class="user-mention" data-user-id="204115">@Amanda Stjerna</span> <span class="user-mention" data-user-id="337115">@Domenic Quirl</span> <span class="user-mention" data-user-id="118594">@Dylan MacKenzie (ecstatic-morse)</span> <span class="user-mention" data-user-id="116109">@Vytautas Astrauskas [he/him]</span> and <span class="user-mention" data-user-id="116009">@nikomatsakis</span> you're all ... <em>the best</em> !</p>



<a name="247740494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247740494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247740494">(Jul 30 2021 at 17:48)</a>:</h4>
<p>oh great idea :)</p>



<a name="247740544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247740544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247740544">(Jul 30 2021 at 17:49)</a>:</h4>
<p>(also, we may want to adjust <a href="https://github.com/rust-lang/team/blob/master/teams/wg-polonius.toml">https://github.com/rust-lang/team/blob/master/teams/wg-polonius.toml</a>)</p>



<a name="247740782"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247740782" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247740782">(Jul 30 2021 at 17:51)</a>:</h4>
<p><a href="https://calendar.google.com/event?action=TEMPLATE&amp;tmeid=MnVoZmxtM3ZqbWxwbnRycGtvZjAxMWxkM3EgNnU1cnJ0Y2U2bHJ0djA3cGZpM2RhbWdqdXNAZw&amp;tmsrc=6u5rrtce6lrtv07pfi3damgjus%40group.calendar.google.com">calendar event for next sprint</a></p>



<a name="247740812"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247740812" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247740812">(Jul 30 2021 at 17:52)</a>:</h4>
<p>once we gather everything, I'll have a blog PR ready by the time you're back from vacation</p>



<a name="247740909"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247740909" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247740909">(Jul 30 2021 at 17:52)</a>:</h4>
<p>(enjoy your vacation -- don't work on dada too much ;) amanda as well enjoy your vacation :)</p>



<a name="247741022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247741022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247741022">(Jul 30 2021 at 17:53)</a>:</h4>
<p>Thanks y'all</p>



<a name="247748158"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247748158" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247748158">(Jul 30 2021 at 18:55)</a>:</h4>
<p>I'll keep working on this for a bit the following days; I had a major puppy event and had to run off to entertain him before I really got off the ground, but the good news is that this will allow for <span class="user-mention" data-user-id="116109">@Vytautas Astrauskas [he/him]</span> PR to land which will hopefully make things easier for me anyway :)</p>



<a name="247764746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247764746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247764746">(Jul 30 2021 at 21:30)</a>:</h4>
<p>After lexer generators (<code>logos</code>) were _also_ taking a good while to compile, I ended up removing literally all dependencies to get compile times down. Opened <a href="https://github.com/rust-lang/polonius/pull/173">https://github.com/rust-lang/polonius/pull/173</a> for the result</p>



<a name="247764950"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247764950" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247764950">(Jul 30 2021 at 21:32)</a>:</h4>
<p>Time to read up on what the rest of y'all were up to while I was bashing my head against the compile-time wall</p>



<a name="247764998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/247764998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Domenic Quirl <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#247764998">(Jul 30 2021 at 21:32)</a>:</h4>
<p>I'll have to find some actual logic work for next time now <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="248287547"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Polonius%20Hackathon%202021-07-30/near/248287547" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Polonius.20Hackathon.202021-07-30.html#248287547">(Aug 03 2021 at 22:10)</a>:</h4>
<p>(quick update on finishing what we started during the sprint: the polonius-engine release is done, and here's the PR to update rustc to it <a href="https://github.com/rust-lang/rust/pull/87738">https://github.com/rust-lang/rust/pull/87738</a>)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>